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

1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 痔疮又痛又痒怎么办 痔疮肉球特别痒怎么办 长了个小痔疮怎么办 产后4天没大便怎么办 7个月孕妇痔疮怎么办 运动完恶心想吐怎么办 跑步后恶心想吐怎么办 肠子不蠕动严重便秘怎么办 怀孕八个月严重便秘怎么办 怀孕七个月便秘严重怎么办 怀孕两个月便秘严重怎么办 3岁宝宝上火便秘怎么办 7个月的宝宝贫血怎么办 9个月婴儿贫血怎么办 肛裂大便有血怎么办 生完宝宝肛门痛怎么办 肛周脓肿出血了怎么办 胃胀怎么办简单的办法 吃多了胃胀难受怎么办 胃窦炎胆汁反流怎么办 怀孕总胆汁酸高怎么办 胃里胆汁反流怎么办 苦胆水吐出来了怎么办 喝多了吐胆汁怎么办 吐出黄水苦水是怎么办 喝酒喝的一直吐怎么办 孕期总胆汁酸高怎么办 孕早期胆汁酸高怎么办 孕妇总胆汁酸高怎么办 宝宝一天吐了6次怎么办 肛周脓肿破了怎么办 肛周脓肿发烧了怎么办 肛周脓肿便血该怎么办 婴儿得肛周脓肿怎么办 水痘长在龟头上怎么办 轻度萎缩性胃炎伴肠化怎么办 肺癌晚期腿肿了怎么办 胸骨剑突按压痛怎么办 22岁有白头发怎么办 血热导致掉头发怎么办 36岁脱发严重该怎么办