WebService(三)

JAX-WS简单使用示例:

1.服务端

WebService(三)

 package com.rong.service;

 import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService; @WebService
public interface UserService {
//private私有方法不会被发布,只会发布public方法
//exclude默认为false,即发布;若为true,即不发布
@WebMethod(operationName="getMyAge",exclude=true)
public int getAge();
public @WebResult(name="ResultType")String changeName(@WebParam(name="NameType")String name);
}
 package com.rong.service;

 import javax.jws.WebService;

 //@WebService
//通过注解修改wsdl文件信息
@WebService(targetNamespace="http://service.rjl.com/",
serviceName="UserService",
portName="bindingname",
name="portname",
//UserServiceImpl可能实现多个接口,注解endpointInterface用于
//只发布哪个接口服务,并且要在那个接口中添加@WebService
endpointInterface="com.rong.service.UserService")
public class UserServiceImpl implements UserService { @Override
public int getAge() {
return 0;
} @Override
public String changeName(String name) {
return name.toUpperCase();
} }
 package com.rong.test;

 import javax.xml.ws.Endpoint;

 import com.rong.service.UserServiceImpl;

 public class Test {

     public static void main(String[] args) {
//第一个参数是发布的URL
//第二个参数是服务接口的实现类对象
Endpoint.publish("http://127.0.0.1:8080/myservice", new UserServiceImpl());
} }

运行main方法

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

2.客户端

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

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

WebService(三)

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

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

WebService(三)

测试:

 package com.rong.test;

 import java.net.MalformedURLException;
import java.net.URL; import javax.xml.namespace.QName;
import javax.xml.ws.Service; import com.rjl.service.UserService; public class Test { public static void main(String[] args) throws MalformedURLException { // 客户端使用服务方式一:见上篇
//客户端使用服务方式二
URL url=new URL("http://127.0.0.1:8080/myservice?wsdl");
//第一个参数是服务的URI,服务的命名空间名字
//第二个参数是WSDL发布的服务名
QName serviceName=new QName("http://service.rjl.com/", "UserService");
Service service = Service.create(url, serviceName);
UserService userService = service.getPort(UserService.class);
System.out.println(userService.changeName("rjl and kobe!"));
}
}

WebService(三)

上一篇:LDA工程实践之算法篇之(一)算法实现正确性验证(转)


下一篇:代码备忘, TODO宏实现