2013年4月23日 星期二

Eclipse 產生 Web Service Client 問題排除

網路上 step by step 的文章已經很多了,這邊僅記錄我在 Eclipse + JBoss7 上產生 Client 遇到的問題。不定期更新(如果我還持續踩到雷的話)。

不支援 static array

編輯 WSDL 時,Eclipse 會回報以下錯誤。
Multiple annotations found at this line:
    - WS-I: (BP2108) An Array declaration uses - restricts or extends - the soapenc:Array type, or the 
     wsdl:arrayType attribute is used in the type declaration.
    - WS-I: (BP2102) An XML schema import element references something other than an XML 
     schema definition: the referenced element does not have "schema" from XML namespace "http://
     www.w3.org/2001/XMLSchema" as root element.
修改 WSDL ,改為 dynamic array style。

參考:

不支援 RPC / Encoded

編輯 WSDL 時,Eclipse 會回報以下錯誤。
WS-I: (BP2406) The use attribute of a soapbind:body, soapbind:fault, soapbind:header and soapbind:headerfault does not have value of "literal".

修改 WSDL ,將 encoded 改為 literal。雖然這樣修改能順利產生 Web Service Client 的程式碼,但最終還是要看 Web Service 的 Server 端能不能接受 literal 的 SOAP。
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace=http://foo/bar use="encoded"/>

<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace=http://foo/bar use="literal"/>

Eclipse 執行完成卻沒有產生任何程式碼

沒有產生程式碼,沒有任何報錯。

用 console 模式來產生程式碼,以 JBoss 7 為例,直接使用 ${jboss_home}/bin/wsconsume.bat 來產生程式碼,錯誤就能正確顯示。



參考:

0 則回應:

Related Posts Plugin for WordPress, Blogger...