溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JAVA怎么調(diào)用wsdl過程

發(fā)布時(shí)間:2021-02-05 11:01:37 來源:億速云 閱讀:256 作者:小新 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)JAVA怎么調(diào)用wsdl過程,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

前提:① 已經(jīng)提供了一個(gè)wsdl接口② 該接口能正常調(diào)用

總體分為兩種方式:

  • 1.使用cxf的wsdl2java工具生成本地類(使用方式就是本地類的使用)。

  • 2.調(diào)用遠(yuǎn)程的web service方法:創(chuàng)建client來遠(yuǎn)程調(diào)用接口。

因?yàn)榈诙N方式,需要熟悉wsdl,沒深入了解不太好操作,主要說下第一種方式。

使用cxf的wsdl2java工具生成本地類主要步驟如下:

1、安裝JDK環(huán)境(jdk版本是1.6的話,后續(xù)會(huì)報(bào)錯(cuò)jdk6最高只支持ws2.1規(guī)范版本)

2、下載apache-cxf發(fā)布包,下載CXF:http://cxf.apache.org/download.html 目前最新版本為3.1.7,解壓發(fā)布包,設(shè)置CXF_HOME,并添加%CXF_HOME %/bin到path環(huán)境變量。

3、CMD命令行輸入wsdl2java -help,有正常提示說明環(huán)境已經(jīng)正確配置。

4、CMD運(yùn)行命令 :

wsdl2java -encoding utf-8 -d D:\javalib\web http://m.zsjsjy.com/services/resource?wsdl

(wsdl 的路徑)

-encoding表示生成的Java文件編碼格式為utf8,-d表示代碼生成路徑為D:\javalib\we。運(yùn)行后會(huì)在運(yùn)行命令的當(dāng)前路徑生成以供使用的類

5、把生成的類導(dǎo)入項(xiàng)目。一般服務(wù)都叫XXXService,這個(gè)是我們要用到的接口文件

上述過程中的遇到的問題

1、因?yàn)閖dk是1.6版本的,導(dǎo)致下載的apache-cxf發(fā)布包解壓后使用報(bào)錯(cuò),這是cxf和jdk的jar包有沖突引起的!

就下載了老版本的apache-cxf-2.6.12.zip ,查了一些資料,保險(xiǎn)起見接著把jdk換成了1.7,

如果還報(bào)錯(cuò) 就在jdk1.7文件夾下的jre下的lib文件下創(chuàng)建一個(gè)endorsed文件夾(D:\java\jdk1.7.0_16\jre\lib\endorsed),

把a(bǔ)pache-cxf中jaxb對(duì)應(yīng)的三個(gè)2.2jar包復(fù)制到endorsed中,最后成功生產(chǎn)本地java類。

2、成功生成java文件導(dǎo)入項(xiàng)目后,調(diào)整完java中報(bào)錯(cuò)的包文件,結(jié)果serviece類中還是有構(gòu)造函數(shù)報(bào)錯(cuò),注釋說需要jaxws2.2來重新生成才可。

查了下資料說其不能正常編譯通過是由于jax-ws2.2規(guī)約與java6沖突。 但程序又不能僅以java5來編譯,故需要降低jax-ws規(guī)約版本。

解決辦法:執(zhí)行命令: wsdl2java -frontend jaxws21 -d D:\javalib\cn http://m.zszsjsjy.com/services/resource?wsdl
重新生成來解決。

3、接口調(diào)用測(cè)試時(shí)報(bào)錯(cuò),Exception in thread "main" org.apache.cxf.service.factory.ServiceConstructionException

原因是生成接口java類,namespace路徑是它原來默認(rèn)的,而我放進(jìn)項(xiàng)目時(shí)類的路徑已經(jīng)是現(xiàn)在的了。

解決辦法:需要 自定義-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

關(guān)于“JAVA怎么調(diào)用wsdl過程”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI