【WebService】使用JDK开发WebService(二)
来源:互联网 发布:录音软件 比特率 编辑:程序博客网 时间:2024/05/16 09:20
WebService的开发手段
1、使用JDK开发(1.6及以上版本)
2、使用CXF框架开发(工作中)
WebService的组成
1、服务器端
2、客户端
使用JDK开发WebService
a、开发WebService服务端
1、使用eclipse新建一个服务端java工程
2、新建一个接口,使用@WebService(SEI和SEI的实现类)注解标注接口,使用@WebMethod(SEI中的所有方法)注解标注接口中定义的所有方法,如下:
1 package com.test.ws; 2 3 import javax.jws.WebMethod; 4 import javax.jws.WebService; 5 6 /** 7 * 定义SEI(WebService EndPoint Interface)终端 8 * @author H__D 9 * @date 2017年7月28日 上午11:35:3410 *11 */12 //使用@WebService注解标注WebServiceI接口13 @WebService14 public interface HelloWS {15 16 //使用@WebMethod注解标注WebServiceI接口中的方法17 @WebMethod18 public String sayHello(String name);19 20 }
3、编写一个接口实现类,使用@WebService注解标注实现类,如下:
1 package com.test.ws; 2 3 import javax.jws.WebService; 4 5 /** 6 * SEI的具体实现 7 * @author H__D 8 * @date 2017年7月28日 上午11:37:43 9 *10 */11 //使用@WebService注解标注12 @WebService13 public class HelloWSImpl implements HelloWS{14 15 @Override16 public String sayHello(String name) {17 System.out.println("WebService sayHello : " + name);18 return "Hello : " + name;19 }20 }
4、使用Endpoint(终端)类发布webservice,如下:
1 package com.test.ws.server; 2 3 import javax.xml.ws.Endpoint; 4 5 import com.test.ws.HelloWSImpl; 6 7 /** 8 * 发布Web Service 9 * @author H__D10 * @date 2017年7月28日 上午11:40:4811 *12 */13 public class ServerTest {14 15 public static void main(String[] args) {16 17 //定义WebService的发布地址,这个地址就是提供给外界访问Webervice的URL地址,URL地址格式为:http://ip:端口号/xxxx18 String address = "http://127.0.0.1:8989/test-webservice/hellows";19 //使用Endpoint类提供的publish方法发布WebService,发布时要保证使用的端口号没有被其他应用程序占用20 Endpoint.publish(address, new HelloWSImpl());21 System.out.println("发布webservice成功!");22 23 }24 }
5、运行SeverTest类的main方法,使用浏览器进行访问,访问地址:http://127.0.0.1:8989/test-webservice/hellows,如下:
控制他输出:
网页访问:
6、使用Eclipse的Web Services Explorer,测试访问WebService,其中要输入wsdl地址(一般是发布的WebService的Endpoint后面加上'?wsdl'):
7、查看发送消息和响应消息的具体内容,在Eclipse的Web Services Explorer模块中的Status中,点击Source如下:
然后在请求框中查看源,同理在响应框中查看源,可以看到发送的请求消息和响应消息
请求消息
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://ws.test.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2 <soapenv:Body>3 <q0:sayHello>4 <arg0>tom</arg0>5 </q0:sayHello>6 </soapenv:Body>7 </soapenv:Envelope>
响应消息
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:sayHelloResponse xmlns:ns2="http://ws.test.com/"> <return>Hello : tom</return> </ns2:sayHelloResponse> </S:Body></S:Envelope>
b、开发WebService客户端
1、使用eclipse新建一个客服端java工程
2、使用jdk的wsimort.exe工具生成客户端代码,执行命令:wsimport -keep url(url为wsdl文件的路径)生成客户端代码,wsimort.exe工具位于jdk的bin目录下,如下:
打开命令行窗口,切换到src目录中,执行命令:wsimport -keep http://127.0.0.1:8989/test-webservice/hellows?wsdl,如下:
刷新工程,可以看到代码已经生成,如下
3、编写调用WebService对外提供的方法
wsimport工具帮我们生成了好几个java类,但我们只需要关心WebServiceImplService类和WebServiceImpl接口的使用即可,如下:
1 package com.test.ws.client; 2 3 import com.test.ws.HelloWSImpl; 4 import com.test.ws.HelloWSImplService; 5 6 /** 7 * 调用WebService的客户端 8 * @author H__D 9 * @date 2017年7月28日 下午2:39:2410 *11 */12 public class WSClient {13 14 public static void main(String[] args) {15 //创建一个用于产生WebServiceImpl实例的工厂,WebServiceImplService类是wsimport工具生成的16 HelloWSImplService factory = new HelloWSImplService();17 //通过工厂生成一个WebServiceImpl实例,WebServiceImpl是wsimport工具生成的18 HelloWSImpl helloWS = factory.getHelloWSImplPort();19 System.out.println(helloWS.getClass());20 21 //调用WebService的sayHello方法22 String result = helloWS.sayHello("Jack");23 System.out.println(result);24 }25 }
4、运行main方法,控制台输出,可以看到已经成功调用了WebService,如下:
转载地址:http://www.cnblogs.com/h--d/p/7249260.html
- 【WebService】使用JDK开发WebService(二)
- WebService学习总结二 使用JDK开发WebService
- WebService学习总结(二)——使用JDK开发WebService
- 使用JDK开发WebService
- 使用JDK开发WebService
- 使用JDK开发WebService
- 使用JDK开发WebService
- 使用JDK开发WebService
- 使用JDK开发WebService
- 使用JDK开发WebService
- 使用jdk开发webservice
- 使用JDK开发WebService
- 【webservice开发】之使用JDK开发WebService
- WebService(1)——使用JDK开发WebService
- WebService(1)——使用JDK开发WebService
- (2)使用JDK开发WebService
- WebService(二)jdk发布webservice服务
- webservice开发二:使用CXF开发webservice
- 24. Swap Nodes in Pairs
- 笨方法学习Python-习题32: 循环和列表
- C语言中字符串常量和字符常量的区别
- 剑指offer 44 左旋转字符串
- python easy install不是内部或外部命令,也不是可执行的程序
- 【WebService】使用JDK开发WebService(二)
- 【算法】分而治之(DivideAndConquer) -- C++源代码(VS2015)
- Hibernate+boostrapTable分页查询(——前台)
- Python利用WMI实现ping命令
- MTK 6.0 Alarm机制分析
- 有关网站虚拟目录的解释
- Javascript 异步加载详解
- Dialog中Screen logic的处理逻辑原则
- Java 脚本 引擎 jsr223 与 javascript 文件交互