2

我们正在从 WebLogic Web 服务迁移到 Spring-WS (1.5.X)。目前我们面临一个问题:

我们需要将上下文对象(在 WLS 上作为 SOAP-Header 元素传递)传递给仍在 WLS 上从 Spring-WS 支持的服务运行的其他服务。header 元素仍然在客户端制定,新创建的 WS (Spring-WS) 应该只是将它传递给其他服务。

我可以想象自定义元素将如何传递:覆盖 doWithMessage(WebServiceMessage message) 方法...

有没有办法在 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>

感谢帮助

4

1 回答 1

2

我们在我的项目中遇到了类似的问题。检查扩展 SuffixBasedPortTypesProvider、SuffixBasedMessagesProvider 和 Soap11Provider。我们使用 InliningXsdSchemaTypesProvider 来导入我们用来构建 WSDL 的模式。如果您通过调试器运行 WSDL 生成,您将了解它的工作原理。Spring 代码易于遵循和扩展。

于 2009-10-23T13:22:34.397 回答