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 來產生程式碼,錯誤就能正確顯示。



參考:

上海必去 - 豫園商城

豫園商城是來上海的遊客必來的景點,一來是古色古香(外表啦),二來是就在市區,逛完要去外灘看夜景還是要去南京步行街逛街都很方便。基本上這一區就是一個大型的主題商城,附近還有城隍廟、豫園這兩個古蹟可晃,不過這就是要另外收費了(城隍廟門票10塊人民幣、豫園門票40塊人民幣),建議先上網看看別人拍的照片,再安排要不要花錢進去逛。

上海必去 – 中華藝術宮(原世博中國館)

中華藝術官就是2010世博的中國館,入場是免費的,但看會動的清明上河圖就要另外付錢,展覽的空間很大很大,全部逛完可以打發不少時間(去的時候剛好是上海市歷年的攝影比賽展覽,就給他從頭看到尾了)。附近還有月亮船(原沙特館)和義大利館可以逛,這兩個館入場就都要收錢了。然後這一區可以吃的東西很少,就算有也是世博等級的價位,建議吃飽了再來這兒逛,才不會瘦到自己的荷包。











上海必去 - 南京路步行街

剛好住在附近,所以每天都幾乎會來這邊逛,路超大條又是行人限定,非常好逛,步行街兩旁都是大型的賣場,從頭到尾約一公里而且都是這麼熱鬧,如果是要來這邊血拼的話,應該是寸步難行(進度太慢逛不完)。沒有要敗家的人,還是推薦你來這邊走走(剛好可以散步到外灘),感受一下當年上海灘的風華。

最後,我那麼努力每天走也沒人來拉我皮條