技术中心

这里象征着我们的态度和能力

>使用WAS CE开发基于JAX-WS的RESTful服务
发布者:中国IT实验室    信息来源:中国IT实验室    发布时间:2012-01-09      浏览次数:5180
分享到:

新浪微博

腾讯微博

QQ空间

豆瓣网

QQ好友

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

    一、什么是REST

    REST是REpresentational State Transfer的缩写,代表分布式超媒体系统(如World Wide Web)上的一种软件架构体系,并不仅仅是创建Web Service的一种方法。它最早由Roy Fielding于2000年在其博士论文“Architectural Styles and the Design of Network-based Software Architectures”中提出,并定义了一些基本原则。简单的说,放到World Wide Web上,就是所有的应用程序对象和功能都可以抽象为一种资源(Resource),并通过URI来定位并使用。因此,我们可以把符合REST原则的系统称为RESTful。也就是说,REST是一种架构风格,而不是一个标准,你永远不会看到W3C发布一个叫REST的Specification。

     RESTful Web Service与基于SOAP和WSDL的Web Service有着很多的不同,它有着以下特点:

    ?将Web Service作为一种资源,并通过URI来定位

    ?使用HTTP中的POST、GET、PUT和DELETE方法来代表对资源的CREATE、READ、UPDATE、DELETE(CRUD)操作

    ?使用无状态通信

    ?传输XML或者SON

    在JAX-WS中提供了对开发和部署一个RESTful的Web Service的基本支持,即通过实现Provider接口使得Web Serivce可以对传输的XML消息进行完全的控制,因此我们可以在WAS CE中使用JAX-WS开发一个RESTful的Web Service。
    对RESTful Web Service提供完整支持的JAX-RS Specification将会加入Java EE 6.0的大家庭中。当前的WAS CE V2.1.x是遵循Java EE 5.0的企业级应用服务器。因此,若想使用JAX-RS开发RESTful Web Service,请关注WAS CE的后续版本。

     二、开发环境设置

    本文基于WAS CE的最新版本V2.1.1.2开发一个RESTful的Web Service,在开始编写代码之前,请确认如下的开发环境:

    ?Sun JDK V5.0

    ?Eclipse IDE for Java EE Developers - Ganymede

    ?WASCE Eclipse Plug-in (WEP) V2.1.1.2

    此外,WAS CE使用Axis2-1.3作为JAX-WS引擎,但是由于其存在一个已知的关于HTTP Content-Type Header的问题(在Axis2-1.4中才解决),所以我们需要将JAX-WS引擎切换成Apache CXF (WAS CE使用版本为V2.0.8)。不用担心,WAS CE的模块化架构,使这个过程十分简单,过程如下:

    1. 启动WAS CE

    2. 打开Web Console:http://localhost:8080/console

    3. 进入Application -> Plugins页面,点击Add Repository

    4. 由于WAS CE V2.1.1.2是基于Geronimo V2.1.4开发,所以我们也可以使用Geronimo的Server plug-ins.在New Repository中输入:

    http://geronimo.apache.org/plugins/geronimo-2.1.4/ 然后点击Add Repository.

    5. 选择刚刚添加的Repository,然后点击Show Plugins in selected repository.

    6. 勾选上以下plug-ins并且点击install按钮。

    7. 在以上CXF相关的Plugin安装完成之后, 我们需要更新WAS CE的配置文件,以使得WAS CE在启动时加载CXF以代替Axis2.(注意:在更改配置文件前先要停止WAS CE服务器

    8. 停止WAS CE后,打开<WASCE_HOME>/var/config/config.xml

    去掉以下四个module的condition属性:

    <module name="org.apache.geronimo.configs/axis2-deployer/2.1.4/car" condition="…"/>

    <module name="org.apache.geronimo.configs/axis2-ejb-deployer/2.1.4/car" condition="…"/>

    <module name="org.apache.geronimo.configs/cxf-deployer/2.1.4/car" condition="…"/>

    <module name="org.apache.geronimo.configs/cxf-ejb-deployer/2.1.4/car" condition="…"/>

    增加load属性,axis2相关的为false,cxf相关的为true:

    <module name="org.apache.geronimo.configs/axis2-deployer/2.1.4/car" load="false"/>

    <module name="org.apache.geronimo.configs/axis2-ejb-deployer/2.1.4/car" load="false"/>

    <module name="org.apache.geronimo.configs/cxf-deployer/2.1.4/car" load="true"/>

    <module name="org.apache.geronimo.configs/cxf-ejb-deployer/2.1.4/car" load="true"/>

    9. 重新启动WAS CE服务器。

[1] [2] [3] [4] [5] 下一页

4000-880-989
(24小时热线)
联系客服
微信公众号

官方公众号

小程序

©2008-2022 CORPORATION ALL Rights Reserved. 版权所有 滇ICP备09003328号-1 滇公网安备 53011102000818号
昆明那家网络公司好,新媒体运营,网站优化,网络推广,网站建设,网页设计,网站设计,网站推广,云南网站公司,昆明新媒体公司,云南网红主播,昆明SEO公司,昆明网站建设,昆明网络推广,昆明网站优化,昆明网站推广,红河网站建设,大理网络公司,曲靖网络公司,丽江网站设计,昭通网络公司,保山大数据服务,智慧高速建设,智慧校园服务,云南IDC服务商,网络安全测评,等保测评,网站关键词排名优化服务,服务客户尽超2000余家,一切尽在奥远科技,服务电话:13888956730
Baidu
map