1、WebService工作原理-SOAP

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

2、WebService实现

       创建WebService 项目

              Java WebService入门实例_返回结果

 

       创建WebService类

 

		
		package service;
		
		import javax.jws.WebMethod;
		import javax.jws.WebService;
		import javax.xml.ws.Endpoint;
		 
		@WebService
		public class Hello {
			
			@WebMethod(operationName="sayHello1")
			public String sayHello(String userName)
			{
				return "Hello,"+userName+"!";
			}
			
			@WebMethod(operationName="sayHello2")
			public String sayHello(){
				return "Hello World!";
			}
			public static void main(String[] args){
				//将WebService发布到指定地址
				Endpoint.publish("http://192.168.24.170:8888/WebServiceTest/Hello", new Hello());			
			}
		}

 

 


       编译Hello.java 
              Java WebService入门实例_客户端_02


       测试WebService是否发布成功
              Java WebService入门实例_返回结果_03

              Java WebService入门实例_客户端_04

       使用wsimport 生成客户端  
               使用如下:wsimport -p client -keep http://192.168.24.170:8080/WebServiceTest/Hello?wsdl
              Java WebService入门实例_服务器端_05
             这时,会在当前目录中生成如下文件:

              Java WebService入门实例_客户端_06


       创建客户端类

public class HelloClient {
			public static void main(String args[]) {   
				HelloService service = new HelloService();   
				Hello helloProxy = service.getHelloPort();   
				String hello = helloProxy.sayHello1("世界");
				System.out.println(hello);
				String hello1 = helloProxy.sayHello2("");
				System.out.println(hello1); 
			}
		}
		

 

              运行结果如下

              Java WebService入门实例_xml_07


       到此,相信你已经基本掌握WebService使用,再此基础上适当扩展,我们就可以将其放到我们的实际应用中了!