我们正在从WebLogic Web服务迁移到Spring-WS(1.5.X)。 目前我们面临一个问题:
我们需要将一个上下文对象(在WLS上,它作为SOAP-Header元素传递)传递给仍在Spring-WS驱动的服务上运行在WLS上的其他服务。 header元素仍然在客户端制定,新创建的WS(Spring-WS)应该将它传递给其他服务。
我可以想象如何传递自定义元素:覆盖doWithMessage(WebServiceMessage消息)方法......
有没有办法在DefaultWsdl11Definition的帮助下生成wsdl以包含该自定义头元素? 参见示例:
<wsdl:operation name="GetSomeInformation">
<soap:operation
soapAction="http://www.dummyservice.com/InformationService/GetSomeInformation" />
<wsdl:input>
<soap:body use="literal" />
<soap:header message="ctx:ServiceContextMessage" part="serviceContext" use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="Error">
<soap:fault name="Error" use="literal" />
</wsdl:fault>
</wsdl:operation>
感谢您的帮助
答案 0 :(得分:2)
我们的项目遇到了类似的问题。检查扩展SuffixBasedPortTypesProvider,SuffixBasedMessagesProvider和Soap11Provider。我们使用InliningXsdSchemaTypesProvider来导入我们用于构建WSDL的模式。如果您通过调试器运行WSDL生成,您将了解其工作原理。 Spring代码易于遵循和扩展。