2009-08-24 50 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代碼很容易遵循和擴展。