使用jersey搭建restful接口

来源:互联网 发布:亚马逊 云计算 编辑:程序博客网 时间:2024/05/29 04:29

使用jersey搭建的restful接口,不一定是最优方案。

springMVC 可能才是最完美的解决方案。


1.配置maven,加载jersey相关的jar包


<dependency><groupId>com.sun.jersey</groupId><artifactId>jersey-server</artifactId><version>1.9</version></dependency><dependency><groupId>com.sun.jersey</groupId><artifactId>jersey-json</artifactId><version>1.9</version></dependency><dependency><groupId>com.sun.jersey</groupId><artifactId>jersey-client</artifactId><version>1.9</version></dependency><dependency><groupId>com.sun.jersey</groupId><artifactId>jersey-fastinfoset</artifactId><version>1.9</version></dependency><dependency><groupId>com.sun.jersey.contribs</groupId><artifactId>jersey-spring</artifactId><version>1.9</version><!-- 去除自带的spring版本 --><exclusions><exclusion><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId></exclusion><exclusion><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></exclusion><exclusion><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId></exclusion><exclusion><groupId>org.springframework</groupId><artifactId>spring-core</artifactId></exclusion><exclusion><artifactId>spring-web</artifactId><groupId>org.springframework</groupId></exclusion></exclusions></dependency>

2.配置web.xml文件

<!-- Jersey Servlet 配置 --><servlet><servlet-name>JerseyServlet</servlet-name><servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class></servlet><servlet-mapping><servlet-name>JerseyServlet</servlet-name><url-pattern>/REST/*</url-pattern></servlet-mapping>

3.编写接口API

import javax.servlet.http.HttpServletRequest;import javax.ws.rs.POST;import javax.ws.rs.Path;import javax.ws.rs.Produces;import javax.ws.rs.core.Context;import javax.ws.rs.core.MediaType;import net.sf.json.JSONObject;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;import com.sand.mag.bean.QSRentaResultInBean;import com.sand.mag.bean.QSRentalInBean;import com.sand.mag.bean.QSRentalOutBean;import com.sand.mag.common.MAGConstant;import com.sand.mag.operation.QSRentalOperation;import com.sand.mag.operation.QSRentalResultOperation;import com.sand.mag.operation.base.OPCaller;import com.sand.mag.operation.base.OperationContext;import com.sand.mag.utils.StrUtil;@Component@Path("/QSRentalAPI")public class QsRentalAPI {private final static Log logger = LogFactory.getLog(QsRentalAPI.class);@Autowiredprivate OperationContext context;@Path("QSRental")@Produces({ MediaType.TEXT_PLAIN })@POSTpublic String qsRental(@Context HttpServletRequest request) {String response = "";try {String json = StrUtil.buildJsonString(request);QSRentalInBean bean = (QSRentalInBean) JSONObject.toBean(JSONObject.fromObject(json), QSRentalInBean.class);context.setAttribute(QSRentalOperation.IN_BEAN, bean);OPCaller.call(QSRentalOperation.ID, context);response = (String) context.getAttribute(QSRentalOperation.OUT_STRING);} catch (Exception e) {e.printStackTrace();if (e.getMessage().equals(MAGConstant.C_CHECK_SIGN_FAIL)) {return QSRentalOutBean.jsonCommonReturn(MAGConstant.C_CHECK_SIGN_FAIL,MAGConstant.M_CHECK_SIGN_FAIL);}if (e.getMessage().equals(MAGConstant.C_SYSTEM_EXCEPTION)) {return QSRentalOutBean.jsonCommonReturn(MAGConstant.C_SYSTEM_EXCEPTION,MAGConstant.M_SYSTEM_EXCEPTION);}return QSRentalOutBean.jsonCommonReturn(MAGConstant.C_FAIL,MAGConstant.M_FAIL);}logger.info("返回数据  : " + response);return response;}@Path("QSRentalSendResult")@Produces({ MediaType.TEXT_PLAIN })@POSTpublic String qsRentalSendResult(@Context HttpServletRequest request) {String response = "";try {QSRentaResultInBean bean = new QSRentaResultInBean(request);context.setAttribute(QSRentalResultOperation.IN_BEAN, bean);OPCaller.call(QSRentalResultOperation.ID, context);response = (String) context.getAttribute(QSRentalResultOperation.OUT_STRING);} catch (Exception e) {e.printStackTrace();if (e.getMessage().equals(MAGConstant.C_SYSTEM_EXCEPTION)) {return QSRentalOutBean.jsonCommonReturn(MAGConstant.C_SYSTEM_EXCEPTION,MAGConstant.M_SYSTEM_EXCEPTION);}return QSRentalOutBean.jsonCommonReturn(MAGConstant.C_FAIL,MAGConstant.M_FAIL);}logger.info("返回数据  : " + response);return response;}}


4.测试

火狐浏览器有插件:HttpRequester方便测试

测试地址:

http://localhost:8080/TESTAPI/TEST/******

慢慢调试吧





1 0