博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WebService学习之旅(一)使用JAX-WS发布WebService
阅读量:6215 次
发布时间:2019-06-21

本文共 2209 字,大约阅读时间需要 7 分钟。

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

转载于:https://www.cnblogs.com/lanzhi/p/6468288.html

你可能感兴趣的文章
html之一行代码给table设置标题...
查看>>
(转)超简单的缓存实现
查看>>
26日上午多家网站因DNS故障无法访问 包括CCTV、网易等知名网站
查看>>
java实现动态代理切面编程
查看>>
ros自定义消息
查看>>
Python编码问题整理
查看>>
TranslateAnimation详解
查看>>
TP5 未定义数组索引如何解决
查看>>
android ListView下拉刷新之功能实现
查看>>
开始学习 ubuntu 14.04 各种安装各种坑
查看>>
Java后台使用Websocket教程
查看>>
go语言学习--string、int、int64互相转换,字符串的截取,数组和字符串的转换
查看>>
Linux下添加新硬盘,分区及挂载
查看>>
js复选框全选反选
查看>>
JAVA 关键字及其作用解释
查看>>
hibernate中的addEntity setResultTransformer的比较
查看>>
MFC中的DC CDC HDC由来由去理解
查看>>
创建 和使用 CCAnimation
查看>>
(windows)Box2d mingw环境搭建,编译
查看>>
使用PerfView诊断.Net GC的问题
查看>>