spring註解方式,使用jax-ws配置webservice,適合小白。看不會你打死我!
前提條件:java –spring框架,註解(能夠掃描@webService標籤)
1. 經過一天的煎熬和掙扎,終於把webservice的其中非常簡單的配置方法給弄明白了,就是JAX-WS配置webservice,真的非常簡單,只是細節一一旦出了點問題,全盤皆輸,為了不再出現問題,我將一點一點的記錄下來,以便以後有跡可循(因為自己腦子不好使哈哈)。
a) 服務端:
i. 建立一個介面作為我們的服務介面,在介面上加上@webservice,然後寫幾個方法(就是我們想要呼叫的方法),如圖
ii. 建立一個類來實現我們的服務介面,作為服務類,同樣類名上要加@webservice(endpointInterface="com.yuyang.webservice.FightingWS",serviceName="FightService",targetNamespace="http://com.yuyang.fight
iii. 服務端還差一點就是配置檔案,我們用的是spring來託管(如果不用spring可以在main函式中使用Endpoint.pulish()這個方法進行釋出)。只需要在配置檔案中加一個代理bean即可,這個bean在spring中,baseAddress是必須加的屬性,這個使我們的服務介面訪問地址。埠號不要與當前專案相同,會衝突。還有其他的幾個屬性並不重要,選填就行。
b) 客戶端
i. 我們使用的是myeclipse10,myeclipse已經有配置客戶端的外掛了,所有就是下一步下一步的操作。如圖,首先在客戶端程式中建立一個webservice client
選擇專案
Wsdl URl就是我們服務端配置的baseAddress多個引數,固定格式
下一步,如下圖這樣就是正常的,如果出現黃色警告,或者報錯那就是服務端沒有配好,會導致wsdl讀取錯誤,呼叫時會出現問題。
會生成這麼幾個類和介面,其中FightSerivce就是根據我們服務端的servicename 對應生成的名字,我們要用的就是這個類。
隨便找個action、controller或者main方法中使用下面的程式碼就可以呼叫我們服務端webservice的服務了
FightService fs=newFightService();
boolean flag=fs.getFightingWSImplPort().fight("", "");
System.out.println(flag);