webservice

申請接口,書寫方法。@WebService發佈,@WebMethod方法發佈,發佈表示可被外界訪問

 

實現接口,@WebService發佈

 

實例化server實現類,put添加到容器中,運行這個類。URL訪問:http://localhost:8081/k?wsdl

注意  wsdl  不可丟,丟失wsdl這個參數,訪問不上

 

訪問效果:

 

我們訪問WSDL,查看:

能得到命名空間,對外的方法,webservice監聽的url

 

還可以通過網絡,發送xml,交互xml。去請求webservice,獲得的xml需要自己解析,發送的xml也需要遵守一些請求的規範,比如說清楚一些信息。此處就略過,使用javax包下的生成,生成客戶端請求類去請求webservice並獲得結果,獲得是結果不是xml所以也無需解析。否則自己來寫的話,需要按照指定的格式去發送xml,在將請求webservice返回的xml進行解析得到結果,這是使用xml交互,下面是使用jdk自帶的生成客戶端代碼,經過生成的代碼去,無需解析,無需操心訪問

 

打開cmd,使用Java的命令參數,wsimport -s  路徑  -keep url -p  包名

wsimport -s D:\Code\Java\idea_web\idea\filedownload\bootj
sp\src\main\java\  -keep http://localhost:8081/k?wsdl -p com.kaige123.daomu.boot
jsp.webservice.t2

-s源文件放哪,-keep 訪問地址,-p指定包名。包名需要指定,如果不指定,則會有問題。如果指定本包則是覆蓋,外包也會有問題。因爲包的名字沿用的是webservice的包,與-s指定的目錄就會產生,要麼找不到,那麼有問題

 

在cmd輸出命令後,再次查看工具下的包:

t2包的代碼是生成的,t1包是之前自己寫的webservice。

 

訪問webservice服務類:

實例化生成的服務類,得到webservice,調用方法即可

 

調用效果:

 

服務器,收到請求:

 

webservice有什麼用?在我看來,webservice與http是類似的,webservice作爲服務者打開,生成出一溜可以調用的類,使用這些類去發起調用,獲得數據。與http效果類似,可跨平臺調用,可遠程調用,如果語言有支持可調用其他語言,還可以跨語言調用,和http一樣,目前我所看到的效果是。不過一個是http,一個是xml

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