Jersey初始化配置

一 实际项目配置

  公司VIP平台因为业务的特殊性,对业务数据的操作、以及前后端解耦等要求,使用到了jersey框架。同时使用到了spring框架。

二 jersey初始化

  配置web项目配置文件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"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    <display-name>vipmanager</display-name>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
  <!-- 配置jersey可以使用servlet的AP,并指定初始化的自定义类I--> <servlet> <servlet-name>jersey-servlet</servlet-name> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> <init-param> <param-name>javax.ws.rs.Application</param-name> <param-value>com.timevale.esign.vip.application.MyApplication</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>jersey-servlet</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> <!-- <filter> <filter-name>AccessServlet</filter-name> <filter-class>com.timevale.esign.vip.intercept.AccessServlet</filter-class> </filter> <filter-mapping> <filter-name>AccessServlet</filter-name> <url-pattern>/content/acc.jsp</url-pattern> </filter-mapping> <filter> <filter-name>RestAccessServlet</filter-name> <filter-class>com.timevale.esign.vip.intercept.RestAccessServlet</filter-class> </filter> <filter-mapping> <filter-name>RestAccessServlet</filter-name> <url-pattern>/rest/api/*</url-pattern> </filter-mapping> --> </web-app>

  jersey初始化启动类

/**
 * 杭州天谷信息科技有限公司源代码,版权归杭州天谷信息科技有限公司所有 <br/>
 * 项目名称:openapi-tech Maven Webapp <br/>
 * 文件名:MyApplication.java <br/>
 * 包:com.timevale.esign.openapi.tech.application <br/>
 * 描述:TODO <br/>
 * 修改历史: <br/>
 * 1.[2015年10月9日下午5:24:40]创建文件 by jsh
 */
package com.timevale.esign.vip.application;

import javax.ws.rs.ApplicationPath;

import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.server.spring.scope.RequestContextFilter;

import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;

/**
 * 类名:MyApplication.java <br/>
 * 功能说明:VIP项目jersey初始化启动类 <br/>
 * 修改历史: <br/>
 * 1.[2015年10月9日下午5:24:40]创建类 by jsh
 */
@ApplicationPath("/rest")
public class MyApplication extends ResourceConfig {
    /**
     * MyApplication 构造方法
     */
    public MyApplication() {
        // 初始化Resource,以指定包的形式初始化,多个包之间以分号隔开
        packages("com.timevale.esign.vip.resource");
        packages("org.glassfish.jersey.examples.multipart");

        // 注册spring filter
        register(RequestContextFilter.class);

        // 注册数据转换器,支持传参和返回信息json格式与bean之间的自动转换
        register(JacksonJsonProvider.class);
        
        // 注册支持multipart-formdata格式的请求
        register(org.glassfish.jersey.media.multipart.MultiPartFeature.class);
    }
}
原文地址:https://www.cnblogs.com/HEWU10/p/5082588.html