java-webservice的简单实现

服务端:

  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

 

原文地址:https://www.cnblogs.com/baikaishui-liang/p/10812758.html