SSH集成jersey

来源:互联网 发布:统计软件 stata mac 编辑:程序博客网 时间:2024/05/08 00:23

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;@XmlRootElementpublic 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
原创粉丝点击