Java Web Service相关的若干概念(JAX-WS,JAX-RS)


这一段时间从.NET转战java了。表示对java的一套相当不熟悉。新手,必须是新手。作为新手,我感到压力很大。
面对开发环境中的若干包,若干插件,若干技术。只写过Java 控制台里边的HelloWord,学习过Java基本语言的我,感到很有挑战性。。。
转入正题,今天要说说与Java WebService 相关的一些列概念。因为我个人在探索过程中被这些五花八门的新名词搞的很晕,找不到各个概念之间的联系,想要做一个解决方案的选择,令我纠结若干天。
以前的时候,对.NET的webservice有所了解,所以对于理解javawebservice 难度就不大。

l  JWS: 是指与webservice相关的J2EE(其实现在应该叫做Java EE吧)技术叫做 JWS(全称就是 java webservice)。没错,jws指的就是 javawebservice
l  Jws含有的技术
1.        JAX-WS
2.        JAX-RS
3.        JAXB
4.        JAXR
5.        SAAJ
6.        StAX
诸多技术,不是都要弄明白,再说,对于我来说,也不是要攻java的,至少目前不是。
关于JAX-WS 与JAX-RS

简要说一下 JAX-WS 和JAX-RS
JAX-WS全称是JavaTM API forXML-Based Web Services
JAX-RS :全称是  JavaTM API forRESTful Web Services
而jaxb是java xml binding,是jax-rs jax-ws底层使用的对象与xml之间转换的工具
网上说关于JAX-WS与JAX-RS有这么说的: 两者是不同风格的SOA架构。前者以动词为中心,指定的是每次执行函数。而后者以名词为中心,每次执行的时候指的是资源。
感觉这个说法比较靠谱,JAX-WS是面向消息的,每次请求的时候指定了请求的方法。JAX-RS是面向资源的。后则将网络上的东西当做一种资源,每次请求都是对该资源进行操作,比如对资源的增删查改。
在网上看到这么一句话:JAVA 中共有三种WebService 规范,分别是JAXM&SAAJ、JAX-WS(JAX-RPC)、JAX-RS。我暂时不清楚他们能不能叫做webservice服务规范,而且这个服务规范是什么意思?
JAX-WS规范是一组XML web services的JAVA  API,这样会不会好理解一点?规范和API什么关系啊。。。。为什么规范是java api (请原谅我这么咬文嚼字。。。)

我的理解就是他们只是集成在java平台里边的API,这个API是用来实现不同风格的JWS的。人们把这一套API叫做web服务规范。因为他们的设计目标不一样,前者JWS-WS为实现基于soap协议的Web Service提供的API,SOAP协议比较强大。而后者JWS-RS是为基于REST设计风格的WebServcice提供的API。
关于REST这么说,它是一种架构,而不是一种标准。目前我对他得理解还不够深刻,暂不做深述。

然后我们再结合一部分框架,就能够很轻松(至少框架的目的是这样)的实现Web Service。
支持JAX-WS服务规范的框架有:CXF,Axis,Xfile
CXF、Axis2、XFire 结合java语言均可可实现JAX-WS(我理解的是:
CXF、Axis2、XFire 结合java语言均可可实现JAX-WS
JAX-WS是规范,提供了一套API,API你就理解为一堆接口吧,
只是定义了接口,没有实现具体的功能,典型的光说不做
CXF、Axis2、XFire 这些是实现了这一堆接口的类库,也就是具体干活的
因为实现的是同一套接口,所以随时可以替换使用(理论上))

支持JAX-RS服务规范的框架有:
CXF——XFire和Celtix的合并(一个由IONA赞助的开源ESB,最初寄存在ObjectWeb上)。
Jersey——Sun公司的JAX-RS参考实现。
RESTEasy——JBoss的JAX-RS项目。
Restlet——也许是最早的REST框架了,它JAX-RS之前就有了。 http://www.restlet.org/downloads/stable



我想,意思是这些框架结合JAX-WS能够实现RET风格的webservice吧,因为JAX-WS不是指的是API么?上述说法令人费解。。
好吧吗,我们就假定认为结合这些框架在结合java平台提供的一些API我们就能够分别实现 soap协议风格的webservice,或者实现 REST风格的Web Service。

暂时写到这里,我真的标识仍然对上述的一些列概念之间的关系理不顺,希望明白的朋友指点一下迷津,ThankYou!!

你可能感兴趣的:(webservice,REST,SOAP,jax-ws,JAX-RS)