WebService(三)

JAX-WS简单使用示例:

1.服务端

WebService(三)_第1张图片

 1 package com.rong.service;
 2 
 3 import javax.jws.WebMethod;
 4 import javax.jws.WebParam;
 5 import javax.jws.WebResult;
 6 import javax.jws.WebService;
 7 
 8 @WebService
 9 public interface UserService {
10     //private私有方法不会被发布,只会发布public方法
11     //exclude默认为false,即发布;若为true,即不发布
12     @WebMethod(operationName="getMyAge",exclude=true)
13     public int getAge();
14     public @WebResult(name="ResultType")String changeName(@WebParam(name="NameType")String name);
15 }
 1 package com.rong.service;
 2 
 3 import javax.jws.WebService;
 4 
 5 //@WebService
 6 //通过注解修改wsdl文件信息
 7 @WebService(targetNamespace="http://service.rjl.com/",
 8             serviceName="UserService",
 9             portName="bindingname",
10             name="portname",
11             //UserServiceImpl可能实现多个接口,注解endpointInterface用于
12             //只发布哪个接口服务,并且要在那个接口中添加@WebService
13             endpointInterface="com.rong.service.UserService")
14 public class UserServiceImpl implements UserService {
15 
16     @Override
17     public int getAge() {
18         return 0;
19     }
20 
21     @Override
22     public String changeName(String name) {
23         return name.toUpperCase();
24     }
25 
26 }
 1 package com.rong.test;
 2 
 3 import javax.xml.ws.Endpoint;
 4 
 5 import com.rong.service.UserServiceImpl;
 6 
 7 public class Test {
 8 
 9     public static void main(String[] args) {
10         //第一个参数是发布的URL
11         //第二个参数是服务接口的实现类对象
12         Endpoint.publish("http://127.0.0.1:8080/myservice", new UserServiceImpl());
13     }
14 
15 }

运行main方法

浏览器输入地址:http://127.0.0.1:8080/myservice?wsdl访问wsdl检验是否开启服务

2.客户端

eclipse创建项目,在项目路径下F:\workplace\myclient\src

运行cmd,执行指令生成客户端代码(可用工具生成)

WebService(三)_第2张图片

然后在生成的代码文件夹中删除字节码文件.class文件,只保留java文件

返回eclipse开发工具的客户端项目,刷新项目

WebService(三)_第3张图片

测试:

 1 package com.rong.test;
 2 
 3 import java.net.MalformedURLException;
 4 import java.net.URL;
 5 
 6 import javax.xml.namespace.QName;
 7 import javax.xml.ws.Service;
 8 
 9 import com.rjl.service.UserService;
10 
11 
12 public class Test {
13 
14     public static void main(String[] args) throws MalformedURLException {
15         
16         // 客户端使用服务方式一:见上篇
17         //客户端使用服务方式二
18         URL url=new URL("http://127.0.0.1:8080/myservice?wsdl");
19         //第一个参数是服务的URI,服务的命名空间名字
20         //第二个参数是WSDL发布的服务名
21         QName serviceName=new QName("http://service.rjl.com/", "UserService");
22         Service service = Service.create(url, serviceName);
23         UserService userService = service.getPort(UserService.class);
24         System.out.println(userService.changeName("rjl and kobe!"));
25     }
26 }

WebService(三)_第4张图片

 

你可能感兴趣的:(WebService(三))