2011-12-21 29 views
0

我正在開發一個使用Apache CXF 2.5.0,JDK 7和Eclipse Helios EE的Web服務客戶端。 我在eclipse中執行Web服務客戶端時遇到了以下錯誤。引用策略#AddressingPolicy無法解析錯誤

異常線程「main」 javax.xml.ws.soap.SOAPFaultException:參考政策#AddressingPolicy無法解析..

我按照下面的步驟,到目前爲止部署客戶端。

  1. 在eclipse helios EE中創建了一個java項目,並將CXF運行時添加到項目中。

  2. 使用Apache CXF 2.5.0 WSDL2Java爲客戶端生成了java類(包含-exsh true選項來處理標頭)。這些類是在eclipse src dir中生成的。

  3. 實現客戶端類中的主要方法來調用Web服務。

當我執行客戶端時,我得到了上述異常。

我已經檢查了WSDL,它在binding元素中有一個帶有xml id = #AddressingPolicy的策略引用元素和另一個帶有xml id = #TlsPolicy的策略引用元素。相應的策略在使用wsp:Policy元素的WSDL末尾的WSDL中給出。

我無法修改WSDL,因爲它已經作爲外部服務部署並提供給我開發客戶端。

有沒有人遇到類似的問題,以前的Apache CXF 2.5.0。此外,我覺得這可能是我使用的CXF版本的問題。 Apache CXF 2.5.0是否支持WSDL中的本地策略引用。

欣賞您的回覆。

回答

0

我剛剛有同樣的問題。我發現的修復方法是修改WSDL並使用參考wsu:Id而不是xml:id

<wsp:Policy wsu:Id="AddressingPolicy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
    <...> 
</wsp:Policy> 

我知道你說你不能改變WSDL,但我相信這是不正確的。我所提到的修改不會改變線路上SOAP請求/響應的內容,因此您仍然應該能夠與現有Web服務進行互操作。

+0

謝謝。我會嘗試這個改變,讓你知道。 – ShareNCare 2012-01-16 10:29:14

+0

我嘗試了上述對WSDL的更改,但在CXF創建服務時,仍然遇到與以前相同的錯誤。現在我的尋址策略WSDL如下所示。 – ShareNCare 2012-01-19 09:06:07

相關問題