服務端:
1.創建正常j2ee項目,創建service接口
1 package service; 2 import javax.jws.WebMethod; 3 import javax.jws.WebService; 4
5 /**
6 * WebService2 7 */
8 @WebService 9 public interface HelloService { 10
11 @WebMethod 12 String sayHello(String name, int i); 13
14 }
實現類:
1 package service.impl; 2
3 import javax.jws.WebService; 4
5 import service.HelloService; 6
7 /**
8 * HelloServiceImpl 9 */
10 @WebService 11 public class HelloServiceImpl implements HelloService { 12
13 @Override 14 public String sayHello(String name, int i) { 15 System.out.println("服務端的服務被調用了............"); 16 return "hello" + name; 17 } 18
19
20
21 }
發布服務:
1 package service; 2
3 import javax.xml.ws.Endpoint; 4
5 import service.impl.HelloServiceImpl; 6
7
8 /**
9 * ServicePublish 10 */
11 public class ServicePublish { 12
13 public static void main(String[] args) { 14 String address = "http://localhost:8099/hello"; 15 Object implementor = new HelloServiceImpl(); 16 Endpoint.publish(address, implementor); 17 System.out.println("發布成功"); 18 } 19 }
直接運行main方法啟動服務端,然后再瀏覽器訪問: http://localhost:8099/hello?wsdl
看到如下,說明發布成功
客戶端:
1.用wsimport 工具解析wsdl生成代碼
wsimport -s "生成代碼的物理路徑" http://localhost:8099/hello?wsdl
2.,生成的代碼如圖(服務端類的名稱不一樣,生成結果也不一樣)
3.創建一個測試類調用測試
1 package client; 2
3 /**
4 * 1.通過wsimport解析wsdl創建代碼 5 * 2.通過本地代碼創建代理 6 * 3.通過代理對象調用方法 7 * WsClient 8 */
9 public class WsClient { 10 public static void main(String[] args) { 11 HelloServiceImplService ss = new HelloServiceImplService(); 12 HelloServiceImpl prosy = ss.getHelloServiceImplPort(); 13 String res = prosy.sayHello("佩佩", 33); 14 System.out.println(res); 15 } 16
17 }
備注:
以上環境是基於jdk1.8