xfire生成webservice客戶端與服務注意事項

1.從Bean生成ws,要注意如果用了XmlBeansServiceFactory,則生成Service要用接口,而不能用實現類,不然調用的時候會拋:
org.codehaus.xfire.fault.XFireFault: Parameter {http://www.eshore.com/moa}testin0 does not exist!

2.XmlBeansServiceFactory和ObjectServiceFactory生成的wsdl是不一樣的,因爲調用所使用的SOAP參數名也不一樣,因此客戶端和服務

端生成Service所使用的Factory應該統一

3.如果想根據wsdl生成基於xmlbean的stub,則wsdl需要經過xmlbean工具生成schema的jar包,生成stub需要到此包,不然會出錯:
E:\sylilzy\documents\project\sws\build.xml:27: java.lang.NullPointerException
這一點在文檔中重點提到:file:///E:/sylilzy/baksily/extract/xfire-1.2.6/manual/Client%20and%20Server%20Stub%20Generation%

20from%20WSDL.html
另外,在這個文檔中也有說明:file:///E:/sylilzy/baksily/extract/xfire-1.2.6/manual/XMLBeans%20Client%20Generation.html

4.用xfire通過WSDL生成客戶端和服務端stub時,如果使用 binding="xmlbeans",則服務端運行後的wsdl有問題:

<xsd:element name="servicein0" type="ns1:MOAReq" />
<xsd:element name="serviceout" type="ns1:MOAResp" />

這兩個元素不存在

另外,客戶端也無法調用原wsdl的服務,提示沒有合適的方法,用wireshark抓包後發現客戶端發出的soap請求中根本沒有參數信息.所以

說,通過WSDL的binding="xmlbeans"生成的客戶端和服務端都是有問題的,這一點在文檔中已經

warn:file:///E:/sylilzy/baksily/extract/xfire-1.2.6/manual/XMLBeans%20Client%20Generation.html

而通過ServiceClass的方式生成的沒問題:file:///E:/sylilzy/baksily/extract/xfire-1.2.6/manual/XMLBeans%20Integration.html

發佈了72 篇原創文章 · 獲贊 0 · 訪問量 2563
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章