我们知道java对WebService的实现由N种方式,这里先描述的是jdk源生的支持。 1、编写服务端 编写发布接口: //提供获取幸运数字的Web Service @WebService public interface LockNumService { @WebMethod int
我们知道java对WebService的实现由N种方式,这里先描述的是jdk源生的支持。
1、编写服务端
编写发布接口:
//提供获取幸运数字的Web Service
@WebService
public interface LockNumService {
@WebMethod
int getNum();
@WebMethod
@WebResult(name="luck") int getNumByName(@WebParam(name="name")String name);
}
接口实现类:
//SEI
//标记这是一个Web Service接口数据
@WebService(endpointInterface="org.qf.web.ws.LockNumService")
public class LockNum implements LockNumService{
private Random rm=new Random();
@Override
public int getNum() {
// TODO Auto-generated method stub
System.out.println("我是服务端,客户端调用了我");
return rm.nextInt(10);
}
@Override
public int getNumByName(String name) {
// TODO Auto-generated method stub
System.out.println(name+":你的幸运数字,马上揭晓");
return rm.nextInt(10);
}
}
发布接口:
public static void main(String[] args) {
//发布服务,参数说明:1、访问路径2、要发布的对象
Endpoint.publish("http://10.31.152.15:9090/ws/lock", new LockNum());
System.out.println("亲,WS的幸运数字,已经发布……");
}
2、使用wsimport自动生成客户端代码
jdk的安装目录下有wsimport软件用来生成客户端的代码。
打开cmd,进入到指定的路径,使用命令:
wsimport -keep http://10.31.152.15:9090/ws/lock?wsdl
即可生成客户端的代码
3、客户端调用接口
public static void main(String[] args) throws Exception {
//创建服务对象
LockNumService_Service service=new LockNumService_Service();
//创建接口的实现类对象---服务端
LockNumService ln=service.getLockNumPort();
//调用接口中的方法
System.out.println("我是客户端:"+ln.getNum());
System.out.println("我是客户端:"+ln.getNumByName("小二"));
}