天天看點

利用wsdl2java生成 Webservice 用戶端的調用 

1.下載下傳完 apache-cxf-2.7.5.zip檔案,并解壓

在bin目錄下 執行 wsdl2java -encoding UTF-8 -all  xxx.wsdl  ,生成了代碼之後,拷貝到eclipse中發現報錯:

The constructor Service(URL, QName, WebServiceFeature[]) is undefined

 參考http://blog.csdn.net/luckarecs/article/details/7233369 知道 原因是CXF自帶的javax.xml.service 版本高過 jdk的javax.xml.service。 解決辦法是加上 -frontend jaxws21

于是 修改為 wsdl2java -encoding UTF-8 -all -frontend jaxws21 xxx.wsdl

2詳細參數說明:

wsdl2java用法:

wsdl2java -p com -d src -all  aa.wsdl

-p  指定其wsdl的命名空間,也就是要生成代碼的包名:

-d  指定要産生代碼所在目錄

-client 生成用戶端測試web service的代碼

-server 生成伺服器啟動web  service的代碼

-impl 生成web service的實作代碼

-ant  生成build.xml檔案

-all 生成所有開始端點代碼:types,service proxy,,service interface, server mainline, client mainline, implementation object, and an Ant build.xml file. 

3.soapui 工具調用 Webservice 時,一直報錯

 javax.xml.bind.UnmarshalException: unexpected element (uri:“”, local:“arg0”),最後網上找了下,才知道

我已經在方法的形參上面加了@WebParam(name="sampleId")注解,但是soapui工具生成的request editor裡面還是 arg0,改成 sampleId之後,一切Ok