WebService学习总结二 使用JDK开发WebService

来源:互联网 发布:vb调用按键精灵脚本 编辑:程序博客网 时间:2024/06/05 12:05

一 服务器端:包括要发布的接口SEI,接口实现类和接口的发布类

1 SEI接口:使用@WebService和@WebMethod两个注解,一个加在接口上一个加在方法上。

2 SEI实现:使用@WebService,加在实现类上。

3 服务发布类:在main方法里使用 Endpoint.publish(发布路径, 接口实现类)进行发布;

二  测试发布的接口:使用浏览器访问 发布路径?wdl,如果看到WebService定义的文档即成功。

三 客户端:使用jdk的 wsimport生成代码,首先进入客户端项目的src目录中(生成客户端代码的位置,默认和Server端的包相同),执行 wsimport -keep 发布的路径?wsdl,最后刷新src就可以看到生成的客户端代码了。 比如客户端项目的src目录是:D:\java\workspace\P2\src  ,在命令行执行  d: 回车,cd   D:\java\workspace\P2\src  回车,

wsimport -keep 发布的路径?wsdl


代码:

服务端

package com.ws.se;import javax.jws.WebMethod;import javax.jws.WebService;/* * SEI WebService服务端接口 */@WebServicepublic interface HelloServer {@WebMethodpublic String sayHello(String str);}
package com.ws.se;import javax.jws.WebService;/* * SEI实现类 WebService服务实现类 */@WebServicepublic class HelloServerImpl implements HelloServer {@Overridepublic String sayHello(String str) {System.out.println("Server收到消息:"+str);return "这是来自Server的响应";}}

package com.ws.se;import javax.xml.ws.Endpoint;/* * 发布WebService */public class ServerPublish {public static void main(String[] args) {String address="http://192.168.1.101:8988/WSS/HelloServer";Endpoint.publish(address, new HelloServerImpl());System.out.println("Server 发布成功");}}


客户端

首先生成代码 

/WSC/src/com/ws/se/HelloServerImpl.java
/WSC/src/com/ws/se/HelloServerImplService.java
/WSC/src/com/ws/se/ObjectFactory.java
/WSC/src/com/ws/se/package-info.java
/WSC/src/com/ws/se/SayHello.java
/WSC/src/com/ws/se/SayHelloResponse.java;

package com.ws.test;import com.ws.se.HelloServerImpl;import com.ws.se.HelloServerImplService;/* * 测试WebService客户端代码 */public class TestClient {public static void main(String[] args) {HelloServerImplService factory=new HelloServerImplService();//产生Server端发布接口的工厂HelloServerImpl hsi=factory.getHelloServerImplPort(); //获取Server端发布接口的代理String res=hsi.sayHello("Tom");//获取服务端的响应System.out.println(res);}}


0 0