服務端:
package com.yinfu.service; import javax.jws.WebService; import javax.xml.ws.Endpoint; @WebService public class TestWebsService { public String sayHello(String username) { return "Hello: " + username; } public static void main(String[] args) { Endpoint.publish("http://localhost:8075/com.yinfu.service.TestWebsService", new TestWebsService()); System.out.println("Success"); } }
在想要發布為WebService的類上加上注解@WebService,這個類的方法就變為WebService的方法了,再通過Endpoint的publish方法,發布這個服務,到此,一個最簡單的WebService搞定。運行main方法,在瀏覽器里輸入”http://localhost:8075/com.yinfu.service.TestWebsService?wsdl “ 會看到你的WSDL信息。
OK,說明服務端沒有問題,搭建成功
客戶端:
在命令行輸入命令 wsimport -p [包名] -keep [發布的服務地址?wsdl] 生成客戶端代碼,如生成本例的客戶端代碼wsimport -p com.yinfu.service.client-keep http://localhost:8075/com.yinfu.service.TestWebsService?wsdl“,當然,前提是你已經配好了JAVA環境變量。控制台會顯示
注意現在需要找到生成的客戶端java代碼,控制台指向在那生成的代碼就在哪里,例如我控制台指向的是C:\Users\Administrator\那么我生成的java文件就在C:\Users\Administrator\ com\yinfu\service\client\中,這個地方注意一下就可以了,有很多人不知道生成的代碼去哪里了!
OK,把生成的代碼拷貝到客戶端的項目中,
package com.yinfu.service.client; public class HelloClient { /** * @param args */ public static void main(String[] args) { TestWebsServiceService myService = new TestWebsServiceService(); TestWebsService ms = myService.getTestWebsServicePort(); String s = ms.sayHello("why"); System.out.println(s); } }
利用這些生成的客戶端代碼,就可以調用這個WebService服務了:執行代碼,輸出:Hello why。運行的時候要注意服務端的項目服務是啟動的。