我应该如何设置与服务器通信的会话标识符?
@service = SOAP::WSDLDriverFactory.new(WSDL_URL).create_rpc_driver
@service.getExecutionInfo({})SOAP::FaultError:缺少会话标识符。此操作需要会话标识符。->缺少会话标识符。此操作需要会话标识符。来自#< SOAP::Mapping::Object:0xb5bfef2c>
发布于 2011-05-17 21:56:24
首先,我需要指出的是,我对ruby-on-rails或soap4r一无所知,但我在使用Java服务时遇到了类似的问题,所以我可以为您指明正确的方向。
会话标识符是在加载报表后生成的,因此您需要调用web服务的LoadReport方法,该方法返回一个ExecutionInfo对象,您在该对象上调用getExecutionID,从而为您提供所需的会话标识符。
该标识符需要进入该报告的所有后续请求的SOAP标头中(更改报告,并且您需要更改标头中的标识符)。您的SOAP标头最终应该如下所示:
<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
<env:Header>
<ssrs:ExecutionHeader xmlns:ssrs='http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices'>
<ssrs:ExecutionID>your-execution-id</SSRS:ExecutionID>
</ssrs:ExecutionHeader>
...
</env:Header>
...
</env:Envelope>显然,your-execution-id将替换为从getExecution ID返回的内容。
如何在ruby和soap4r中获得标题是我无能为力的。
https://stackoverflow.com/questions/5017322
复制相似问题