1. 創建服務端
第一步:File–>New–>Project;我這里使用原生JDK來開發Web Service Server服務,所以不勾選Generate Sample Server Code,意思是不使用Apache Axis,也不生成Apache Axis代碼。選中Set up library later表示暫時不設置依賴包。
第二步:輸入項目名稱
項目結構如下:
PublishWebService.java
1 package com.suns.webservice.server; 2 3 import com.suns.webservice.server.service.impl.HelloServiceImpl; 4 5 import javax.xml.ws.Endpoint; 6 7 8 public class PublishWebService { 9 10 public static void main(String[] args) { 11 String adress = "http://127.0.0.1:8080/webservice/sayHello"; 12 Endpoint.publish(adress, new HelloServiceImpl()); 13 System.out.println("web service服務端發布成功"); 14 } 15 }
HelloService.java
1 package com.suns.webservice.server.service; 2 3 import javax.jws.WebMethod; 4 import javax.jws.WebService; 5 6 @WebService 7 public interface HelloService { 8 @WebMethod 9 String sayHello(String name); 10 }
HelloServiceImpl.java
1 package com.suns.webservice.server.service.impl; 2 3 import com.suns.webservice.server.service.HelloService; 4 5 import javax.jws.WebService; 6 7 @WebService 8 public class HelloServiceImpl implements HelloService { 9 @Override 10 public String sayHello(String name) { 11 System.out.println("server sayHello()" + name); 12 return "Hello" + name; 13 } 14 }
運行PublishWebService中main函數,發現web service服務正常持續運行
訪問http://127.0.0.1:8080/webservice/sayHello?wsdl獲取wsdl文件,把wsdl文件導入到SoapUI,訪問web service服務。結果如下:
2. 創建web service客戶端
第一步:File–>New–>Project;我這里使用原生JDK來開發Web Service Client服務,所以不勾選Generate Sample Server Code,意思是不使用Apache Axis,也不生成Apache Axis代碼。選中Set up library later表示暫時不設置依賴包。
第二步:輸入項目名稱
項目結構如下:
使用IDEA自帶CMD功能進入到src,通過JDK自帶wsimport功能來生成客戶端代碼
D:\Workspace\IDEA\web-service-client\src>wsimport -keep http://127.0.0.1:8080/webservice/sayHello?wsdl
新建WebServiceClient.java文件來訪問服務端代碼
1 package com.suns.webservice.client; 2 3 import com.suns.webservice.server.service.impl.HelloServiceImplService; 4 import com.suns.webservice.server.service.impl.HelloServiceImpl; 5 6 public class WebServiceClient { 7 public static void main(String[] args) { 8 HelloServiceImplService factory = new HelloServiceImplService(); 9 HelloServiceImpl helloServiceImplPort = factory.getHelloServiceImplPort(); 10 String response = helloServiceImplPort.sayHello("suns"); 11 System.out.println(response); 12 } 13 }
服務端測試結果:能正常收到客戶端傳過來suns,並打印
客戶端測試結果:能正常收到服務端返回的結果並打印