2009-08-24 38 views
1

中将自定义SOAP-Header元素添加到生成的WSDL中,我们正在从WebLogic Web服务迁移到Spring-WS(1.5.X)。 目前我们面临的一个问题是:如何在Spring-WS

我们需要将一个上下文对象(在WLS上它作为SOAP-Header元素传递)传递给仍然在Spring-WS powered服务上运行在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> 

感谢您的帮助

回答

2

我们碰到了我的项目类似的问题。检查扩展SuffixBasedPortTypesProvider,SuffixBasedMessagesProvider和Soap11Provider。我们使用InliningXsdSchemaTypesProvider导入我们用来构建WSDL的模式。如果你通过调试器运行WSDL代,你会得到它的工作方式。 Spring代码很容易遵循和扩展。