java調用wsdl介面

來源:互聯網
上載者:User

標籤:遠程調用   app   red   down   通過   bin   cto   front   說明   

前提:① 已經提供了一個wsdl介面② 該介面能正常調用
總體分為兩種方式:
1.使用cxf的wsdl2java工具產生本地類(使用方式就是本地類的使用)。 
2.調用遠端web service方法:建立client來遠程調用介面。
因為第二種方式,需要熟悉wsdl,沒深入瞭解不太好操作,主要說下第一種方式。

使用cxf的wsdl2java工具產生本地類主要步驟如下:
1、安裝JDK環境(jdk版本是1.6的話,後續會報錯jdk6最高只支援ws2.1規範版本)
2、下載apache-cxf發布包,下載CXF:http://cxf.apache.org/download.html 目前最新版本為3.1.7,解壓發布包,設定CXF_HOME,並添加%CXF_HOME %/bin到path環境變數。
3、CMD命令列輸入wsdl2java -help,有正常提示說明環境已經正確配置。 
4、CMD運行命令 : wsdl2java -encoding utf-8 -d D:\javalib\web http://m.zsjsjy.com/services/resource?wsdl 
(wsdl 的路徑)
-encoding表示產生的Java檔案編碼格式為utf8,-d表示代碼產生路徑為D:\javalib\we。運行後會在運行命令的當前路徑產生以供使用的類 
5、把產生的類匯入項目。一般服務都叫XXXService,這個是我們要用到的介面檔案


上述過程中的遇到的問題:
1、
因為jdk是1.6版本的,導致下載的apache-cxf發布包解壓後使用報錯,這是cxf和jdk的jar包有衝突引起的!
就下載了老版本的apache-cxf-2.6.12.zip ,查了一些資料,保險起見接著把jdk換成了1.7,
如果還報錯 就在jdk1.7檔案夾下的jre下的lib檔案下建立一個endorsed檔案夾(D:\java\jdk1.7.0_16\jre\lib\endorsed),
把apache-cxf中jaxb對應的三個2.2jar包複製到endorsed中,最後成功生產本地java類。
2、
成功產生java檔案匯入項目後,調整完java中報錯的包檔案,結果serviece類中還是有建構函式報錯,注釋說需要jaxws2.2來重建才可。
查了下資料說其不能正常編譯通過是由於jax-ws2.2規約與java6衝突。 但程式又不能僅以java5來編譯,故需要降低jax-ws規約版本。
解決辦法:執行命令: wsdl2java -frontend jaxws21 -d D:\javalib\cn http://m.zszsjsjy.com/services/resource?wsdl 
重建來解決。
3、
介面調用測試時報錯,Exception in thread "main" org.apache.cxf.service.factory.ServiceConstructionException
原因是產生介面java類,namespace路徑是它原來預設的,而我放進項目時類的路徑已經是現在的了。解決辦法:
需要 自訂-p路徑 重建:
wsdl2java -frontend jaxws21 -encoding utf-8 -p cn.teacheredu.app.projectconfigcenter.proj.module.screen.tlogin.zswebservice -d D:\javalib\cn http://m.zszsjsjy.com/services/resource?wsdl

java調用wsdl介面

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.