Jersey在spring环境下的实现
来源:互联网 发布:java迭代器 实现类 编辑:程序博客网 时间:2024/06/10 18:28
1:pom.xml引得jersey相关jar
- <dependency>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-core</artifactId>
- <version>1.11</version>
- </dependency>
- <dependency>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-server</artifactId>
- <version>1.11</version>
- </dependency>
- <dependency>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-client</artifactId>
- <version>1.11</version>
- </dependency>
- <dependency>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-json</artifactId>
- <version>1.10</version>
- </dependency>
- <dependency>
- <groupId>javax.ws.rs</groupId>
- <artifactId>jsr311-api</artifactId>
- <version>1.1.1</version>
- </dependency>
- <dependency>
- <groupId>asm</groupId>
- <artifactId>asm</artifactId>
- <version>3.2</version>
- </dependency>
- <dependency>
- <groupId>com.sun.jersey.contribs</groupId>
- <artifactId>jersey-spring</artifactId>
- <version>1.11</version>
- <exclusions>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-web</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-aop</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
2:web.xml
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>
- classpath*:spring/*.xml
- </param-value>
- </context-param>
- <listener>
- <listener-class>
- org.springframework.web.context.ContextLoaderListener
- </listener-class>
- </listener>
- <listener>
- <listener-class>
- org.springframework.web.context.request.RequestContextListener
- </listener-class>
- </listener>
- <servlet>
- <servlet-name>JerseyServlet</servlet-name>
- <servlet-class>
- com.sun.jersey.spi.spring.container.servlet.SpringServlet
- </servlet-class>
- <init-param>
- <param-name>
- com.sun.jersey.config.property.packages
- </param-name>
- <!-- 系统启动时扫描的包的路径-->
- <param-value>com.gissecur.mcas.webservices</param-value>
- </init-param>
- <init-param>
- <param-name>
- com.sun.jersey.api.json.POJOMappingFeature
- </param-name>
- <param-value>true</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>JerseyServlet</servlet-name>
- <url-pattern>/resources/*</url-pattern>
- </servlet-mapping>
3:要生成rest的service类
- package com.gissecur.mcas.webservices;
- import javax.servlet.http.HttpServletRequest;
- import javax.ws.rs.GET;
- import javax.ws.rs.Path;
- import javax.ws.rs.PathParam;
- import javax.ws.rs.Produces;
- import javax.ws.rs.core.Context;
- import javax.ws.rs.core.MediaType;
- import org.apache.commons.lang.exception.ExceptionUtils;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.context.annotation.Scope;
- import org.springframework.stereotype.Component;
- import com.gissecur.mcas.exception.ServiceException;
- import com.gissecur.mcas.model.TimebasedToken;
- import com.gissecur.mcas.service.ChallengeService;
- import com.gissecur.mcas.service.VerifyService;
- import com.sun.jersey.spi.resource.Singleton;
- @Path("/tokenapi")
- @Component
- @Scope("request")
- @Singleton
- @SuppressWarnings("unqualified-field-access")
- public class McasWebserviceTest {
- protected Log logger = LogFactory.getLog(getClass());
- @Autowired
- @Qualifier("challengeServiceImp")
- public ChallengeService challengeServiceImp;
- @Autowired
- @Qualifier("verifyServiceImp")
- public VerifyService verifyServiceImp;
- // 外部传过来的参数
- // @QueryParam("id") String serid;
- public VerifyService getVerifyServiceImp() {
- return verifyServiceImp;
- }
- public void setVerifyServiceImp(VerifyService verifyServiceImp) {
- this.verifyServiceImp = verifyServiceImp;
- }
- @SuppressWarnings("nls")
- @GET
- @Scope("request")
- @Path("/hello")
- @Produces(MediaType.TEXT_PLAIN)
- public String helloWorld() { // @PathParam("username") String username
- String ret = "Hello World!";
- return ret;
- }
- @SuppressWarnings( { "nls", "unqualified-field-access" })
- @GET
- @Scope("request")
- @Produces(MediaType.TEXT_PLAIN)
- @Path("/crtchallengecode/{tokenid}")
- public String crtChallengeCode(@PathParam("tokenid")
- String tokenid, @Context
- HttpServletRequest request) {
- String retString = "";
- String clientIp = request.getRemoteAddr();
- System.out.println("token id in--------------->" + tokenid + "/"
- + request.getRemoteAddr());
- try {
- retString = challengeServiceImp.crtChgCode(tokenid, clientIp);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- if (e instanceof ServiceException) {
- ServiceException serverError = (ServiceException) e;
- String errcode = serverError.getErrorCode();
- String errMesage = serverError.getMessage();
- retString = "challenge errorcode:" + errcode + "/descript:"
- + errMesage;
- } else {
- retString = "challenge system error:" + e.getMessage();
- }
- logger.error("Challenge Code generate error->IP::" + clientIp
- + ";tokenid::" + tokenid + ";"
- + ExceptionUtils.getFullStackTrace(e));
- // throw new WebApplicationException(400);
- }
- return retString;
- }
- @SuppressWarnings( { "nls", "unqualified-field-access" })
- @GET
- @Scope("request")
- @Produces(MediaType.TEXT_PLAIN)
- @Path("/verify/{tokenid}/{challengecode}")
- public String verify(@PathParam("tokenid")
- String tokenid, @PathParam("challengecode")
- String challengecode, @Context
- HttpServletRequest request) {
- String retString = "";
- String clientIp = request.getRemoteAddr();
- try {
- TimebasedToken token = new TimebasedToken();
- token.setSerid(tokenid);
- token.setChgCode(challengecode);
- if (verifyServiceImp.tokenVerfiy(token, clientIp)) {
- retString = "verify pass.";
- }
- else{
- retString = "verify failed.";
- }
- } catch (Exception e) {
- // TODO Auto-generated catch block
- if (e instanceof ServiceException) {
- ServiceException serverError = (ServiceException) e;
- String errcode = serverError.getErrorCode();
- String errMesage = serverError.getMessage();
- retString = "verify errorcode:" + errcode + "/descript:"
- + errMesage;
- } else {
- retString = "verify system error:" + e.getMessage();
- }
- logger
- .error("verify generate error->IP::" + clientIp
- + ";tokenid::" + tokenid + ";challenge code::"
- + challengecode + ";"
- + ExceptionUtils.getFullStackTrace(e));
- // throw new WebApplicationException(400);
- }
- return retString;
- }
- @SuppressWarnings("unqualified-field-access")
- public ChallengeService getChallengeServiceImp() {
- return challengeServiceImp;
- }
- public void setChallengeServiceImp(ChallengeService challengeServiceImp) {
- this.challengeServiceImp = challengeServiceImp;
- }
- }
访问方式:http://localhost:7001/mcas/resources/tokenapi/crtchallengecode/0000000001
相关参考文章(感觉比较好的文章)
http://www.iteye.com/topic/1111932
http://www.cnblogs.com/bluesfeng/archive/2010/10/28/1863816.html
http://jersey.java.net/nonav/documentation/latest/user-guide.html#d4e919
http://jersey.java.net/nonav/documentation/latest/getting-started.html#d4e45
0 0
- Jersey在spring环境下的实现
- Jersey在spring环境下的实现
- Jersey在spring环境下的实现
- jersey实现还要整合在spring
- Jersey环境的搭建
- 在Spring的环境下使用SpringMVC
- Jersey1.8在spring环境下的实现 包括实例代码
- Jersey1.8在spring环境下的实现 包括实例代码
- Jersey1.8在spring环境下的实现 包括实例代码
- Jersey1.8在spring环境下的实现 包括实例代码
- jersey实现的RESTful
- 在Spring的环境下使用Spring MVC
- spring与jersey的集成
- Jersey+Spring 实现rest 接口 服务调用
- Jersey+Spring 实现rest 接口 服务调用
- 在MyEclipse环境下 struts 2、spring、hibernate的整合
- 在不同环境下调用Spring来管理的Bean.
- 设置自定义servlet在spring环境下的加载顺序
- iOS10 注册极光推送(干货)
- 基于Vue的简单的单页面应用
- ★leetcode10_Regular Expression Matching[附动态规划]
- 361M以下的Linux名单
- 5. Longest Palindromic Substring(最长回文串)
- Jersey在spring环境下的实现
- 《汇编语言》学习(一)基础知识
- Markdown 常用格式记录
- 分享一个酷炫广播轮播demo
- MySQL存储过程详解
- [Android开发] Xposed 插件开发之二: Xposed一些知识
- 51nod 1134 最长递增子序列(dp)
- 工银融e联支付,免费上门办理
- 未在本地计算机上注册OraOLEDB.Oracle.1的程序