使用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;}}
火狐浏览器有插件:HttpRequester方便测试
测试地址:
http://localhost:8080/TESTAPI/TEST/******
慢慢调试吧
1 0
- 使用jersey搭建restful接口
- Java Restful 不使用Spring,搭建jersey
- 基于jersey搭建RESTful风格的WebService接口
- Jersey调用Webservice Restful接口
- Jersey Restful搭建 及问题
- 初探RESTful——使用Grizzly和Jersey搭建RESTful环境
- 使用Jersey开发RESTful服务
- 使用Jersey创建RESTful服务
- 使用Jersey开发RESTful服务
- 使用Jersey创建RESTful服务
- 使用Jersey创建RESTful服务
- 使用Jersey开发RESTful服务
- 使用Jersey创建RESTful服务
- 使用Jersey创建RESTful服务
- 使用Jersey创建RESTful服务
- 图片上传--Jersey实现RESTful接口
- 图片上传--Jersey实现RESTful接口
- 使用CI框架搭建restful接口
- Tika常见格式文件抽取内容并做预处理
- 毕业论文中的“参考文献”设置(经验二)
- JavaWeb学习总结(五十三)——Web应用中使用JavaMail发送邮件
- win7环境下安装Ubuntu kylin 16.04 Lts
- dp 最大矩阵和
- 使用jersey搭建restful接口
- 实践课堂|2016成都站|报名开始啦!
- 我的c\c++之旅(七)
- Effective C++
- Retrofit——Cache
- poj 3463 Sightseeing dij
- AS打包问题
- HDFS 文件操作命令格式与注意事项
- Android 耳机状态监听