1、WebService工作原理-SOAP
当客户端调用一个WebService的方法时,首先将方法名称和需要传递的参数包装成XML,也就是SOAP包,通过HTTP协议传递到服务器端,然后服务器端解析这段XML,得到被调用的方法名称和传递过来的参数,进而调用WebService相应的方法,方法执行完毕后,将返回结果再次包装为XML,也就是SOAP响应,发送到客户端,最后客户端解析这段XML,最终得到返回结果。
2、WebService实现
创建WebService 项目
创建WebService类

1 package service; 2 3 import javax.jws.WebMethod; 4 import javax.jws.WebService; 5 import javax.xml.ws.Endpoint; 6 7 @WebService 8 public class Hello { 9 10 @WebMethod(operationName="sayHello1") 11 public String sayHello(String userName) 12 { 13 return "Hello,"+userName+"!"; 14 } 15 16 @WebMethod(operationName="sayHello2") 17 public String sayHello(){ 18 return "Hello World!"; 19 } 20 public static void main(String[] args){ 21 //将WebService发布到指定地址 22 Endpoint.publish("http://192.168.24.170:8888/WebServiceTest/Hello", new Hello()); 23 } 24 }
编译Hello.java
测试WebService是否发布成功
使用wsimport 生成客户端
使用如下:wsimport -p client -keep http://192.168.24.170:8080/WebServiceTest/Hello?wsdl
这时,会在当前目录中生成如下文件:
创建客户端类

1 public class HelloClient { 2 public static void main(String args[]) { 3 HelloService service = new HelloService(); 4 Hello helloProxy = service.getHelloPort(); 5 String hello = helloProxy.sayHello1("世界"); 6 System.out.println(hello); 7 String hello1 = helloProxy.sayHello2(""); 8 System.out.println(hello1); 9 } 10 }
运行结果如下
到此,相信你已经基本掌握WebService使用,再此基础上适当扩展,我们就可以将其放到我们的实际应用中了!