jax-ws 实现webservice
文章中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相关推荐
- spring和maven_具有Spring和Maven教程的JAX–WS
spring和maven Spring框架通过JAX-WS提供对Web服务的远程支持,实际上,如Spring 参考文档中所述 ,有三种将Spring POJO服务公开为JAX-WS Web服务的方式: ...
- 带有Spring和Maven教程的JAX–WS
Spring框架通过JAX-WS提供对Web服务的远程支持,实际上,如Spring 参考文档中所述 ,有三种将Spring POJO服务公开为JAX-WS Web服务的方式: 公开基于Servlet的 ...
- 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 ...
- webservice 之 Java CXF实战效果 RS WS(二)
为什么80%的码农都做不了架构师?>>> 两种实现第一种RS 定义接口类 public interface ExampleRestfulI {/*** url:http://l ...
- java开发webservice的几种方式
为什么80%的码农都做不了架构师?>>> webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis ...
- java 调用webservice的各种方法总结
http://www.blogjava.net/zjhiphop/archive/2009/04/29/webservice.html 现在webservice加xml技术已经逐渐成熟,但要真正要用起 ...
- 从零开始学习 webservice第一集,java webservice简单实例入门教程
现在从零开始学习webservice 概念自己百度搜,总之,webservice就相当于一个接口,就像你走进了一家售货店,你不需要知道这家店怎么卖给你东西,你拿着钱去,说我要一包玉溪,人家就会给你返回 ...
- Cxf + Spring3.0 入门开发WebService
转自原文地址:http://sunny.blog.51cto.com/182601/625540/ 由于公司业务需求, 需要使用WebService技术对外提供服务,以前没有做过类似的项目,在网上搜寻 ...
- 通过ajax调用WebService服务
首先创建一个自己的ws: package cn.wuchuanlong.ws; import javax.jws.WebMethod; import javax.jws.WebService; imp ...
- WebService 学习之路(一):了解并使用webService
转自:http://www.cnblogs.com/xiaochangwei/p/4969448.html webService主要用于向其他系统提供接口以便调用,系统间可能开发语言等完全不同,根据约 ...
最新文章
- FungalTraits: 超越FUNGuild的最新真菌表型数据库
- [转]多线程编程指南
- BZOJ 1093 [ZJOI2007]最大半连通子图
- leetcode-345-翻转字符串中的元音字母
- saltstack mysql_saltstack学习五:return及入库_MySQL
- 实体框架 Code First 迁移命令
- 深度学习(01)——安装anaconda
- opencv之resize
- BZOJ4764弹飞大爷——LCT
- HashMap源码注释
- 想让“贾维斯”成为现实?物联网帮你拥有
- 考研强化阶段选书怎么选
- 源泉书签支持批量删除功能啦
- apa引用要在文中吗_APA、MLA格式引用规范
- 陕西电力同业对标管理系统
- css旋转45度_Matplotlib中的文字旋转问题
- 天津科技大学计算机西电,学通信工程专业,大学四年该如何规划?谢谢
- QCC512x QCC302x earbud工程 LED 配置
- 由点及面,一叶知秋----集合大家族
- 南宁市计算机技术专业学校,南宁电脑技术学校有哪些