1. 程式人生 > >spring註解方式,使用jax-ws配置webservice,適合小白。看不會你打死我!

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

"),不過這個要多幾個配置。第一個:endpointInterface,指向你的服務介面,這個要寫,會在釋出webservice用到;第二個:servicename,這個我認為寫不寫都行,就是個標誌,不過這個會影響你自動的那個類的名字,不重要;第三個:targetNamespace,這個也不是很重要,但是要有,就是個namespace.

                             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);