Java 如何在SpringWS中向生成的WSDL添加自定义SOAP头元素

Java 如何在SpringWS中向生成的WSDL添加自定义SOAP头元素,java,web-services,soap,wsdl,spring-ws,Java,Web Services,Soap,Wsdl,Spring Ws,我们正在从WebLogicWeb服务迁移到SpringWS(1.5.X)。 我们目前面临一个问题: 我们需要将上下文对象(在WLS上,它作为SOAP头元素传递)从Spring WS-powered服务传递给仍在WLS上运行的其他服务。header元素仍然是在客户端制定的,新创建的WS(SpringWS)应该只将其传递给其他服务 我可以想象自定义元素将如何传递:重写doWithMessage(WebServiceMessage message)方法 有没有办法在DefaultWsdl11Defin

我们正在从WebLogicWeb服务迁移到SpringWS(1.5.X)。 我们目前面临一个问题:

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

我可以想象自定义元素将如何传递:重写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>


感谢您的帮助

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