WebService学习之旅(一)使用JAX-WS发布WebService
来源:互联网 发布:程序员专用显示器 编辑:程序博客网 时间:2024/06/05 09:23
JAX-WS全称Java™ API for XML Web Services,是随着JDK1.6及其后续版本发布的方便Java程序员开发WebService应用的一组API,通常简称为JWS,目前版本为2.x。
使用JAX-WS编写WebService非常简单,下面介绍WebService服务端及客户端实现。
一、开发WebService服务端
1.Web服务的接口称为SEI,我们首先要用定义一个接口HelloWorld,使用@WebService注解修饰接口名,使用@WebParam修饰需要对外发布的方法,代码如下:
package com.csdn.jaxws.recipe01;import javax.jws.WebMethod;import javax.jws.WebService;@WebServicepublic interface HelloWorld { @WebMethod String sayHello(String text);}
2.WEB服务接口的实现类称为SIB,接下来我们需要实现HelloWorld接口:
package com.csdn.jaxws.recipe01;import javax.jws.WebService;@WebService(endpointInterface = "com.csdn.jaxws.recipe01.HelloWorld") public class HelloWorldImpl implements HelloWorld { @Override public String sayHello(String name) { return "hello," + name; }}
3.服务接口和实现类已经编写完成,接着需要编写发布类HelloWorldService:
package com.csdn.jaxws.recipe01;import javax.xml.ws.Endpoint;public class HelloWorldService { public static void main(String[] args) { HelloWorld hw = new HelloWorldImpl(); Endpoint.publish("http://localhost:9089/service/HelloWorld", hw); }}
4.编译运行HelloWorldService 类,如果控制台没有错误信息,说明我们的WebService已经发布成功。
5.每个WebService都会有一个与之对应的WSDL文档,我们可以在WebService的URL后追加?WSDL查看,打开浏览器输入http://localhost:9089/service/HelloWorld?wsdl
,可以查看wsdl文档。
二、WebService客户端编写
WebService的客户端调用通常有两种,第一种使用RPC方式,第二种是使用JDK自带的wsimport工具生成客户端代码,使用这种方式较为简单,就像是在本地直接调用服务端代码一样。
下面介绍如何使用wsimport生成客户端代码,并实现webservice调用。
1.新建一个eclipse工程,使用控制台进入工程的src目录,输入:
wsimport -keep http://localhost:9089/service/HelloWorld?wsdl
工具执行完毕后生成客户端代码如下:
2.编写客户端调用代码Recipe01Client:
package com.csdn.jaxws.recipe01.client;import com.csdn.jaxws.recipe01.HelloWorldImpl;import com.csdn.jaxws.recipe01.HelloWorldImplService;public class Recipe01Client { public static void main(String[] args) { //创建HelloWorldImplService对象 HelloWorldImplService hws = new HelloWorldImplService(); //通过getHelloWorldImplPort方法获取HelloWorldImpl实例 HelloWorldImpl hw = hws.getHelloWorldImplPort(); //使用HelloWorldImpl实例,像直接调用服务端方法一样,调用Web服务,获取WebService响应数据 String retVal = hw.sayHello("Jone"); System.out.println(retVal); }}
你可以已经猜到,运行程序控制台输出:hello,Jone
- WebService学习之旅(一)使用JAX-WS发布WebService
- WebService学习之旅(二)JAX-WS基于Web容器发布WebService
- WebService学习之旅(三)JAX-WS与Spring整合发布WebService
- WebService学习之旅(三)JAX-WS与Spring整合发布WebService
- Jax WS发布webservice
- JAX-WS WebService发布
- webService之JAX-WS
- JAX-WS(一)之使用wsgen从Java创建WebService
- WebService-01-使用JAX-WS发布WebService服务
- 利用jax-ws发布WebService
- jax-ws WebService相关问题(一)
- 使用jax-ws开发webservice(二)
- 真正的轻量级WebService框架—使用JAX-WS(JWS)发布WebService(转载)
- WebService-JAX-WS学习案例
- WebService之jax-ws入门
- 使用JAX-WS开发WebService
- 使用JAX-WS(JWS)在tomcat中发布WebService
- WebService笔记(第二弹:使用JAX-WS开发WebService)
- 第四周项目3-随机数应用于游戏
- 夜课后的明月
- Raspberry PI3(树莓派)第一课:Tomcat+pi4j远程控制led
- [疯狂Java]网络:GET/POST请求、设置请求属性、获取响应属性
- kafka源码解析之一kafka诞生的背景
- WebService学习之旅(一)使用JAX-WS发布WebService
- C++primer第七章习题答案
- CF IndiaHack B 深度优先搜索
- HDU 2123 An easy problem
- 瓜子二手车直卖网 既不直卖又有中间商
- OC中字符串类和数值类
- HDU_2604Queuing
- POJ 2752 Seek the Name, Seek the Fame
- HDU 2068:RPG的错排【排列组合】