代码结构如下:
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; } }除了struts1里的,在struts文件里配置
<constant name="struts.action.excludePattern" value="/rest/.*" />访问地址 http://huimian.app.china.com/japi/v4/task/list
返回 {“sss”:”sss”}