webService主要用於向其他系統提供接口以便調用,系統間可能開發語言等完全不同,根據約定的接口規范,調用者傳遞相關參數進行接口調用,服務方根據傳入的條件進行業務處理並進行結果返回。
webSercive現在有很多框架支持,並且可以和主流框架如Spring進行集成,更易於操作。推薦使用Apache CXF. 不過今天學習暫時不設計CXF,后期將會以具體實例展示SpringMVC和CXF、restful的集成及使用。 Springmvc集成CXF請看教程二 http://www.cnblogs.com/xiaochangwei/p/5399507.html
現在采用最傳統的方式來進行簡單的webService創建及演示。
① 打開eclipse創建一個java工程並新建class,代碼如下:
package webService001; import javax.jws.WebService; import javax.xml.ws.Endpoint; @WebService public class WebService001 { public void testWebService(String name) { System.out.println("Test sucessfully, you input name is :" + name); } public static void main(String[] args) { Endpoint.publish("http://www.xiaochangwei.com:8888/webService/test", new WebService001()); System.out.println("webService pulish completed!"); } }
需要注意的是class上有@Webservice注解. 右鍵 run as javaApplication,待控制台打出public complete,請保持此程序一直運行,不要關閉
打開瀏覽器,輸入publish中的地址,並在末尾加上?wsdl,如:http://www.xiaochangwei.com:8888/webService/test?wsdl 打開后如下即表示發布成功
② 寫客戶端代碼,來進行調用
打開eclise,新建項目,選擇web service client,在新打開的窗口中service defination中輸入 http://www.xiaochangwei.com:8888/webService/test?wsdl,finish后會看見項目中有5個java文件,
XXXXX.java
XXXXXPortBindingStub.java
XXXXXProxy.java
XXXXXService.java
XXXXXServiceLocator.java
這些都是根據wsdl定義文件給我們生成的本地java文件,這樣我們可以像操作本地的java類一樣進行遠程服務的調用
新建ServiceTest.java類進行測試,代碼如下:
package webService001; public class ServiceTest { public static void main(String[] args) throws Exception { WebService001 test = new WebService001ServiceLocator().getWebService001Port(); test.testWebService("xiaochangwei"); } }
執行后,由於我們是直接從控制台打出消息,所以需要我們到發布service的eclipse控制台查看打印的信息,當然可以修改為返回String等任意對象,在客戶端顯示
上述就是webservice的入門實例,有興趣的朋友請持續關注,近期將發布SpringMVC中集成CXF發布webservice及相關配置、使用等
即下面的配置方式,不需要再生成如此多的文件
<jaxws:endpoint id="helloWorld" implementor="#hello" address="/HelloWorld" />
Springmvc集成CXF請看教程二 http://www.cnblogs.com/xiaochangwei/p/5399507.html