文章中http://5148737.blog.51cto.com/5138737/1604472 中我们曾谈到,JAX-WS可以实现webservice,与axis,cxf不同的是,JAX-WS是一种规范。

一、什么是jax-ws

JAX-WS规范是一组XML web services的JAVA API,JAX-WS允许开发者可以选择RPC-oriented或者message-oriented 来实现自己的web services

二、jax-ws与jax-rpc的关系

Sun最开始的web services的实现是JAX-RPC 1.1 (JSR 101)。这个实现是基于Java的RPC,并不完全支持schema规范,同时没有对Binding和Parsing定义标准的实现。

JAX-WS2.0 (JSR 224)是Sun新的web services协议栈,是一个完全基于标准的实现。在binding层,使用的是the Java Architecture for XML Binding (JAXB, JSR 222),在parsing层,使用的是the Streaming API for XML (StAX, JSR 173),同时它还完全支持schema规范。

三、使用jax-ws构建web服务

使用jax-ws实现webservice的话,需要导入jax-ws的jar包,因为使用的是jdk中的jar,需要使用wsgen与wsimport两个命令,下面一一道来:

(1)新建java类,添加注解,@WebService标志该类为一个webservice,WebMethod标志方法为webservice的方法。

@WebService
public class Hello {@WebMethodpublic String sayhello(String name) {System.out.println("hello," +name);return "hello,"+name;}
}

(2)javac编译该java类

javac   Hello.java

(3)生成wsdl等文件

此处,使用wsgen生成WSDL和相关的xsd文件,

D:\workspace\jaxws\src>wsgen  -cp  .  com.xj.service.Hello  -wsdl

-wsdl参数代表生成webservice,缺省的话将默认不生成

- s参数代表生成的.java文件置于何处

-d 参数代表生成的编译class文件置于何处

-r 参数代表生成的.wsdl文件与.xsd文件生成在何处

-cp参数代表classpath,即Hello.class的所在路径

此时,可以看到目录中生成了wsdl与xsd文件。

(4)编写服务端并启动

public class test {public static void main(String[] args) {String address="http://localhost/Jaxws/HelloService";Endpoint.publish(address, new Hello());System.out.println("启动server服务");}}

测试发现不需要wsgen命令,上述方式也可以启动服务端,查看服务端是否启动成功

访问,http://localhost/Jaxws/HelloService,可以看到wsdl文件

(5)编写客户端,并访问服务端

新建客户端项目jaxws-client

使用wsimport生成Java的客户端实现

D:\workspace\jaxws-client>wsimport -p com.xj.client -keep  http://localhost/Jaxws/HelloService?wsdl

命令参数说明:

  -d:生成客户端执行类的class文件的存放目录

  -s:生成客户端执行类的源文件的存放目录

  -p:定义生成类的包名

地址为我们服务端中暴露的wsdl的地址,命令执行完后,可以看到客户端项目中生成如下文件:

代码实现访问:

public class test {public static void main(String[] args) {HelloService helloService = new HelloService();Hello hello = helloService.getHelloPort();System.out.println(hello.sayhello("sdf"));}
}

如上,创建webservice代理,得到port,通过port可以访问所有的方法。

下面给出jax-ws的jar包地址

http://yun.baidu.com/share/link?shareid=573524266&uk=2836507213

转载于:https://blog.51cto.com/5148737/1606229

jax-ws 实现webservice相关推荐

  1. spring和maven_具有Spring和Maven教程的JAX–WS

    spring和maven Spring框架通过JAX-WS提供对Web服务的远程支持,实际上,如Spring 参考文档中所述 ,有三种将Spring POJO服务公开为JAX-WS Web服务的方式: ...

  2. 带有Spring和Maven教程的JAX–WS

    Spring框架通过JAX-WS提供对Web服务的远程支持,实际上,如Spring 参考文档中所述 ,有三种将Spring POJO服务公开为JAX-WS Web服务的方式: 公开基于Servlet的 ...

  3. jax ws ri 生成java类_JAX-WS(一)之使用wsgen从Java创建简单的WebService

    概念 JAX-WS2.0的全称Java API for XML-Based Web Service 2.0.JAX-WS2.0是对JAX-RPC1.0规范的扩展,是JAX-RPC1.1的后续版本,JA ...

  4. webservice 之 Java CXF实战效果 RS WS(二)

    为什么80%的码农都做不了架构师?>>>    两种实现第一种RS 定义接口类 public interface ExampleRestfulI {/*** url:http://l ...

  5. java开发webservice的几种方式

    为什么80%的码农都做不了架构师?>>>    webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis ...

  6. java 调用webservice的各种方法总结

    http://www.blogjava.net/zjhiphop/archive/2009/04/29/webservice.html 现在webservice加xml技术已经逐渐成熟,但要真正要用起 ...

  7. 从零开始学习 webservice第一集,java webservice简单实例入门教程

    现在从零开始学习webservice 概念自己百度搜,总之,webservice就相当于一个接口,就像你走进了一家售货店,你不需要知道这家店怎么卖给你东西,你拿着钱去,说我要一包玉溪,人家就会给你返回 ...

  8. Cxf + Spring3.0 入门开发WebService

    转自原文地址:http://sunny.blog.51cto.com/182601/625540/ 由于公司业务需求, 需要使用WebService技术对外提供服务,以前没有做过类似的项目,在网上搜寻 ...

  9. 通过ajax调用WebService服务

    首先创建一个自己的ws: package cn.wuchuanlong.ws; import javax.jws.WebMethod; import javax.jws.WebService; imp ...

  10. WebService 学习之路(一):了解并使用webService

    转自:http://www.cnblogs.com/xiaochangwei/p/4969448.html webService主要用于向其他系统提供接口以便调用,系统间可能开发语言等完全不同,根据约 ...

最新文章

  1. FungalTraits: 超越FUNGuild的最新真菌表型数据库
  2. [转]多线程编程指南
  3. BZOJ 1093 [ZJOI2007]最大半连通子图
  4. leetcode-345-翻转字符串中的元音字母
  5. saltstack mysql_saltstack学习五:return及入库_MySQL
  6. 实体框架 Code First 迁移命令
  7. 深度学习(01)——安装anaconda
  8. opencv之resize
  9. BZOJ4764弹飞大爷——LCT
  10. HashMap源码注释
  11. 想让“贾维斯”成为现实?物联网帮你拥有
  12. 考研强化阶段选书怎么选
  13. 源泉书签支持批量删除功能啦
  14. apa引用要在文中吗_APA、MLA格式引用规范
  15. 陕西电力同业对标管理系统
  16. css旋转45度_Matplotlib中的文字旋转问题
  17. 天津科技大学计算机西电,学通信工程专业,大学四年该如何规划?谢谢
  18. QCC512x QCC302x earbud工程 LED 配置
  19. 由点及面,一叶知秋----集合大家族
  20. 南宁市计算机技术专业学校,南宁电脑技术学校有哪些

热门文章

  1. JS传值中文乱码解决方案
  2. JIRA和Confluence更改JVM内存大小解决访问打开缓慢问题
  3. git使用报错: fatal: Couldn‘t find remote ref master的解决方法
  4. 如何快速验证电子邮件地址?
  5. JSLint说“缺少基数参数”
  6. 如何回滚特定的迁移?
  7. win11如何快速加密硬盘 Windows11快速加密硬盘的设置方法
  8. Win11内存占用高怎么办,Win11内存占用高解决方法
  9. python网络爬虫_爬图片
  10. MTK:文件操作接口详解