SSH集成jersey

4 篇文章 0 订阅
2 篇文章 0 订阅

SSH集成jersey

Struts1集成(亲测可用)

代码结构如下:
这里写图片描述

1、web.xml

    <!-- jersey start-->
      <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.china.commons.jersey.MyServiceRegister</param-value>  
        </init-param>  
        <load-on-startup>1</load-on-startup>  
      </servlet>  
      <servlet-mapping>  
        <servlet-name>jersey-servlet</servlet-name>  
        <url-pattern>/japi/*</url-pattern>  <!--此请求拦截,拦截后的path配置在此后面的路径,跟此japi无关 -->
      </servlet-mapping>
      <!-- jersey end-->

2、jar包

    com.springsource.org.objectweb.asm-3.2.0.jar
    gson.jar
    guava-14.0.1.jar
    hk2-api.jar
    hk2-locator.jar
    hk2-utils.jar
    jackson-annotations.jar
    jackson-core.jar
    jackson-core-asl.jar
    jackson-databind.jar
    jackson-jaxrs.jar
    jackson-mapper-asl.jar
    javax.annotation-api.jar
    javax.inject.jar
    jaxrs-ri-2.0.jar
    jersey-client.jar
    jersey-common.jar
    jersey-container-servlet-core.jar
    jersey-server.jar
    jersey-spring-1.19.3.jar
    spring-bridge-2.3.0-b10.jar
    validation-api.jar

下载地址 http://download.csdn.net/detail/jiawenbo89/9813256
3、BaseResource

    import javax.servlet.ServletContext;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;

    import org.apache.log4j.Logger;
    import org.springframework.web.context.support.WebApplicationContextUtils;

    public class BaseResource extends HttpServlet{

        private final Logger log = Logger.getLogger(this.getClass());

        /**
         * 获取bean
         * @param request
         * @param string
         * @return
         */
        public Object getService(HttpServletRequest request, String string) {
            ServletContext context = getServletContext();  
            return WebApplicationContextUtils.getWebApplicationContext(context).getBean(string);
        }
    }

4、MyServiceRegister

    package com.china.commons.jersey;

    import org.codehaus.jackson.jaxrs.JacksonJsonProvider;
    import org.glassfish.jersey.filter.LoggingFilter;
    import org.glassfish.jersey.server.ResourceConfig;

    public class MyServiceRegister extends ResourceConfig{
        public MyServiceRegister() {
            register(Result.class);
            //解析的包
            packages("com.china");
            //注册数据转换器
            register(JacksonJsonProvider.class);
            //加上后可以访问jersey里定义的方法
            register(LoggingFilter.class);
        } 
    }

5、Result.没用暂时

    package com.china.commons.jersey;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

import com.alibaba.fastjson.JSONObject;

@XmlRootElement
public class Result {

    @XmlElement(name = "code")
    private int code;
    @XmlElement(name = "msg")
    private String msg;
    @XmlElement(name = "description")
    private String description;

    @XmlElement(name = "data")
    private JSONObject data;

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public JSONObject getData() {
        return data;
    }

    public void setData(JSONObject data) {
        this.data = data;
    }




}

Struts2集成(未亲测)

除了struts1里的,在struts文件里配置

<constant name="struts.action.excludePattern" value="/rest/.*" />

测试代码

    import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;

import org.apache.log4j.Logger;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import com.alibaba.fastjson.JSONObject;

/**
 * 任务接口
 * @author jiawenbo
 * 2017年3月3日10:43:40
 */
@Component
@Scope("request")
@Path("/v4/task")
public class TaskResource{
    @Context  
    private HttpServletRequest request;  

    private final Logger log = Logger.getLogger(this.getClass());

    /**
     * 获取任务列表
     * @return
     */
    @GET
    @Path("/list")
    @Produces(MediaType.APPLICATION_JSON)
    public JSONObject getList() {
        JSONObject json =  new JSONObject();
        json.put("sss", "sss");
        json.put("sss", "sss");
        return json;
    }

}

访问地址
http://huimian.app.china.com/japi/v4/task/list

返回
{“sss”:”sss”}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值