使用CXF暴露您的REST服务

本文介绍了如何使用Apache CXF将Web应用暴露为REST服务。通过在web.xml和beans.xml中配置CXF,创建并部署REST资源,提供CRUD操作。在遇到返回Map类型数据时,解决缺少消息体写入器的问题,通过创建复合对象来解决。
摘要由CSDN通过智能技术生成

1.  前言

现在互联网Open API流行,将您的Web应用也可以开放Open API给其他第三方使用。达到一种资源有效利用的目的。而Open API的暴露方式是多种多样的。有Web Service形式的,也有提供一个URI方式的,还有就是给客户端一个jar包,直接使用即可。个人认为,对于使用者来说,使用最简单的就是一个“jar包”+“一份使用文档了”,jar将具体的远程通讯细节、鉴权、握手、数据格式转换等等全部都屏蔽掉。不过这个方式仅仅针对于Java应用,如果用于其他技术,例如ASP.NET、PHP的客户端就不合适了。那么折中一下还是提供一个URI资源,客户端无论是什么技术,只要调用此URI资源就可以获取感兴趣的数据,数据格式和技术平台无关(比如JSON、XML)。REST是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。Web应用暴露出来的是URI资源,客户端可以对资源进行操作(CRUD),REST最重要一点就是无状态,这点实际上感觉是特地针对EJB的会话Bean的重量级说的。所以REST轻量得很,轻量就意味着事务性、稳定性、安全性并没有传统JavaEE应用要求得那么高。主要集中于互联网应用对于不同终端的接口。具体的Rest介绍可以参考:

http://baike.baidu.com/view/1077487.htm

Apache的CXF不仅可以将您的Web系统暴露成为Web Service,还可以将您的应用暴露成REST资源供不同客户端调用。

2.  环境搭建

先从Apache站点下载CXF相关jar包。网址是:http://cxf.apache.org/download.html

我下载的是apache-cxf-2.3.2,这个版本算是比较老了,能用就行。

下载后将项目lib下面的jar拷贝到自己web项目的lib中。CXF的samples下面有很多例子,都是支持Ant构建和Maven构建的。建议还是先使用传统方式构建项目,之后再迁移为Maven项目。这样依赖哪些东西心理有数,CXF是强依赖于Spring框架的。

3.  暴露REST服务

下面我们开始暴露自己的Web资源成为REST服务。我们先来看看web.xml的内容

Java代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app>  
  3.     <!-- 配置Spring的配置文件 -->  
  4.     <context-param>  
  5.         <param-name>contextConfigLocation</param-name>  
  6.         <param-value>WEB-INF/beans.xml</param-value>  
  7.     </context-param>  
  8.       
  9.     <!-- 配置Spring的web Context监听器,将Spring与web工程集成在一起 -->  
  10.     <listener>  
  11.         <listener-class>  
  12.             org.springframework.web.context.ContextLoaderListener  
  13.         </listener-class>  
  14.     </listener>  
  15.       
  16.     <!-- 配置CXF -->  
  17.     <servlet>  
  18.         <servlet-name>CXFServlet</servlet-name>  
  19.         <display-name>CXF Servlet</display-name>  
  20.         <servlet-class>  
  21.             org.apache.cxf.transport.servlet.CXFServlet  
  22.         </servlet-class>  
  23.         <load-on-startup>1</load-on-startup>  
  24.     </servlet>  
  25.   
  26.     <servlet-mapping>  
  27.         <servlet-name>CXFServlet</servlet-name>  
  28.         <url-pattern>/service/*</url-pattern>  
  29.     </servlet-mapping>  
  30.     <welcome-file-list>  
  31.         <welcome-file>index.jsp</welcome-file>  
  32.     </welcome-file-list>  
  33. </web-app>  

 bean.xml内容

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值