linux下使用生成ws客戶端

有這個需求,通過wsimport生成ws的客戶端代碼,環境如下:

1)有臺服務器,linux操作系統,無界面

2)同網段的某服務器發佈了webservice服務端,且發佈的wsdl文件有錯誤

針對以上需求,我寫了如下操作的步驟:

1)通過命令行訪問wsdl發佈地址,並將內容下載到本地

2)使用vim修改本地的wsdl內容

3)wsimport從本地生成客戶端

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

1)通過命令行訪問wsdl發佈地址,並將內容下載到本地

使用wget即可

wget http://127.0.0.1:9001/helloworld?wsdl

文件將會下載到本地,本路徑(當前路徑)

[root@developer ws.server.test]# ls
config  helloworld?wsdl  inf.ini  lib  logs  pid.temp  shutdown  startup

使用-P參數,可以指定文件生成位置

2)使用vim修改本地的wsdl內容

修改就好,沒啥好說

3)wsimport從本地生成客戶端

在測試的過程中,我碰到一個問題:

[root@developer ws.server.test]# wsimport -verbose -keep -p com.hinner.api -extension helloworld\?wsdl 
正在解析 WSDL...


[ERROR] file:/home/zr/ws.server.test/helloworld?wsdl不可訪問


	無法解析 WSDL。

這個錯誤的中文翻譯是不可訪問,一開始我以爲是權限的問題,但是不是,查了一些資料,原始應該是 unreachable,翻譯成中文是不可達到,那麼就可能是文件路徑有問題或者文件不存在。

然後看到這個?非常詭異。

那麼我直接改了文件名,於是就成功的生成了ws的客戶端。

至此,已經可以滿足需求了。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

回顧下步驟3中的這個錯誤,除了修改文件名是否還有其他辦法呢

我試過了加‘’,試過了加\,\\,可是都沒有成功,如果哪位有好辦法請留言。

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章