spring整合jersey2.X实现JAX-RS2.0(JSR311) Restful WebService

前言


这几天公司新项目用要搭建一个基于spring和jersey实现的Restful webservice,maven环境是沿用的以前项目的pom,整个过程弄了半天才弄好,记录下来以备翻看,也为偶尔路过的朋友提供一份参考,不足之处敬请谅解

开发环境 eclipse Kepler + tomcat7 + jdk1.7 + maven


什么是Restful

REST指的是一组架构约束条件和原则,满足这些原则的应用或者设计就叫Restful, Restful描述了一个架构样式的互联系统(如 Web 应用程序)。REST 约束条件应用于一个整体应用时,将生成一个简单、可扩展、有效、安全、可靠的架构。

Restful原则:

1.HTTP直接传输数据

2.所有操作是无状态的

3.所有网络上的事物都可以抽象为一个资源(resource)

4,每一个资源都有唯一的URI




WEB环境配置

由于我们要实现的是JAX-RS2.0,JSR311标准(和JAX-RS1.x区别很大),eclipse->project facets选项里选择如下图


  •  JAX-RS2.0需要最少JDK1.7版本的支持
  • web项目版本需要3.1版本,由于Tomcat7.0不能发布3.1的web模组,所以我是通过更改项目的.settings文件来实现的,此处有一个问题,即更改了项目的buildpath和编译等级为1.7版本,仍然无法选中JAX-RS为2.0,报需要JDK1.7的支持,直到删除项目,重新导入才算OK




Web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" xmlns:web="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>mmp</display-name>
  <filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>
			org.springframework.web.filter.CharacterEncodingFilter
		</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>*.do</url-pattern>
  </filter-mapping>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/spring-*.xml</param-value>
  </context-param>
<servlet>
  <servlet-name>jerseyrs</servlet-name>
  <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
   <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>com.zzrh.mmp.rest.RestInit</param-value>
        </init-param>
  <load-on-startup>2</load-on-startup>
 </servlet>
	
	<servlet-mapping>
		<servlet-name>jerseyrs</servlet-name>
                 <!--rest服务接口匹配路径-->
                <url-pattern>/service>/*</url-pattern>
	</servlet-mapping>
  <session-config>
    <session-timeout>60</session-timeout>
  </session-config>
</web-app>


Maven

由于沿用了之前项目的pom,导致jar包环境比较混乱也用了些时间整理,项目启动起来,大多数是报NosuchMethodExcption,ClassNotFoundException,最终整合出一个稳定的版本。此处需要注意的是,JAX-RS2.0和JAX-RS1.X 区别很大,jar包支持方面差别也很大,所以尽量从头配置pom避免一些不必要的异常。

pom.xml    标红部分为jersey  rest配置



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值