服务端:java
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 }
实现类:ide
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 测试
看到以下,说明发布成功spa
客户端:代理
1.用wsimport 工具解析wsdl生成代码code
wsimport -s "生成代码的物理路径" http://localhost:8099/hello?wsdl xml
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