Jersey+Spring 实现rest 接口 服务调用

 下载地址: http://download.java.net/maven/2/com/sun/jersey/contribs/jersey-spring/

或官网

https://maven.java.net/content/repositories/releases/com/sun/jersey/contribs/jersey-spring/1.9/

所需包:

jersey-client-1.8.jar

jersey-core-1.8.jar

jersey-json-1.8.jar

jersey-server-1.8.jar

jersey-spring-1.8.jar

所有jar 目录如下:



web.xml:

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">  
  3. <web-app>  
  4.     <display-name>workflowController Application</display-name>  
  5.        
  6.     <context-param>  
  7.         <param-name>webAppRootKey</param-name>  
  8.         <param-value>workflowController.root</param-value>  
  9.     </context-param>  
  10.        
  11.      <!-- 生产环境设为0 -->  
  12.     <context-param>  
  13.         <param-name>log4jRefreshInterval</param-name>  
  14.         <param-value>0</param-value>  
  15.     </context-param>  
  16.     <context-param>  
  17.         <param-name>log4jConfigLocation</param-name>  
  18.         <param-value>/WEB-INF/classes/log4j.properties</param-value>  
  19.     </context-param>  
  20.       
  21.     <context-param>  
  22.         <param-name>contextConfigLocation</param-name>  
  23.         <param-value>/WEB-INF/classes/*Context.xml</param-value>  
  24.         <!-- classpath:applicationContext.xml,classpath*:*Context.xml -->  
  25.     </context-param>  
  26.       
  27.       
  28.       
  29.     <servlet>  
  30.         <servlet-name>REST Servlet</servlet-name>  
  31.         <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>  
  32.         <load-on-startup>1</load-on-startup>  
  33.         <init-param>  
  34.           <param-name>com.sun.jersey.config.property.packages</param-name>  
  35.           <param-value>com.wondersgroup.resource</param-value>   
  36.         </init-param>  
  37.     </servlet>  
  38.     <servlet-mapping>  
  39.         <servlet-name>REST Servlet</servlet-name>  
  40.         <url-pattern>/service/*</url-pattern>  
  41.     </servlet-mapping>  
  42.       
  43.     <servlet>  
  44.         <servlet-name>SecheduleServlet</servlet-name>  
  45.         <servlet-class>com.wondersgroup.schedule.servlet.ScheduleServlet</servlet-class>  
  46.         <load-on-startup>2</load-on-startup>  
  47.     </servlet>  
  48.       
  49.     <filter>  
  50.         <filter-name>EncodingFilter</filter-name>  
  51.         <filter-class>  
  52.             org.springframework.web.filter.CharacterEncodingFilter  
  53.         </filter-class>  
  54.         <init-param>  
  55.             <param-name>encoding</param-name>  
  56.             <param-value>utf-8</param-value>  
  57.         </init-param>  
  58.     </filter>  
  59.   
  60.     <filter-mapping>  
  61.         <filter-name>EncodingFilter</filter-name>  
  62.         <url-pattern>/*</url-pattern>  
  63.     </filter-mapping>  
  64.   
  65.   
  66.      <listener>  
  67.         <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  
  68.     </listener>  
  69.       
  70.     <listener>  
  71.         <listener-class>  
  72.             org.springframework.web.context.ContextLoaderListener  
  73.         </listener-class>  
  74.     </listener>  
  75.     <!--    
  76.     <filter>  
  77.         <filter-name>struts2</filter-name>  
  78.         <description>Struts2 Filter</description>  
  79.         <filter-class>  
  80.             org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter  
  81.         </filter-class>  
  82.         <init-param>  
  83.             <param-name>packages</param-name>  
  84.             <param-value>com.wondersgroup.framework.widget</param-value>  
  85.         </init-param>  
  86.     </filter>  
  87.   
  88.     <filter>  
  89.         <filter-name>struts2-cleanup</filter-name>  
  90.         <description>Struts2 CleanUp Filter</description>  
  91.         <filter-class>  
  92.             org.apache.struts2.dispatcher.ActionContextCleanUp  
  93.         </filter-class>  
  94.     </filter>  
  95.       
  96.     <filter-mapping>  
  97.         <filter-name>struts2-cleanup</filter-name>  
  98.         <url-pattern>*.action</url-pattern>  
  99.     </filter-mapping>  
  100.   
  101.     <filter-mapping>  
  102.         <filter-name>struts2</filter-name>  
  103.         <url-pattern>*.action</url-pattern>  
  104.     </filter-mapping>  
  105.     -->  
  106.     <!-- session失效时间 分钟  
  107.     <session-config>    
  108.         <session-timeout>-1</session-timeout>    
  109.     </session-config>   
  110.      -->  
  111. </web-app>  

sample:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. /** 
  2.  *  
  3.  */  
  4. package com.wondersgroup.workflow.resource;  
  5.   
  6. import javax.servlet.http.HttpServletRequest;  
  7. import javax.servlet.http.HttpServletResponse;  
  8. import javax.ws.rs.Consumes;  
  9. import javax.ws.rs.FormParam;  
  10. import javax.ws.rs.POST;  
  11. import javax.ws.rs.Path;  
  12. import javax.ws.rs.Produces;  
  13. import javax.ws.rs.core.Context;  
  14. import javax.ws.rs.core.MediaType;  
  15. import org.springframework.beans.factory.annotation.Autowired;  
  16. import org.springframework.beans.factory.annotation.Qualifier;  
  17. import org.springframework.context.annotation.Scope;  
  18. import org.springframework.stereotype.Component;  
  19.   
  20. import com.google.gson.Gson;  
  21. import com.wondersgroup.workflow.controller.WorkflowController;  
  22. import com.wondersgroup.workflow.model.bo.WorkflowActivity;  
  23. import com.wondersgroup.workflow.model.vo.WorkflowResult;  
  24.   
  25. /**  
  26.  * @ClassName: WorkflowService  
  27.  * @Description: TODO(rest)  
  28.  * @author zhoushun  
  29.  * @date 2013-5-31 09:34:11  
  30.  *   
  31.  */  
  32. @Component  
  33. @Path("workflow")  
  34. @Scope("prototype")  
  35. public class WorkflowResource {  
  36.     @Context  
  37.     public HttpServletRequest request;  
  38.     @Context   
  39.     public HttpServletResponse response;  
  40.       
  41.     private WorkflowController controller;  
  42.       
  43.     public WorkflowController getController() {  
  44.         return controller;  
  45.     }  
  46.   
  47.     @Autowired(required=false)  
  48.     public void setController(@Qualifier("workflowController")WorkflowController controller) {  
  49.         this.controller = controller;  
  50.     }  
  51.   
  52.     @POST  
  53.     @Path("launchProcess")  
  54.     @Consumes(MediaType.APPLICATION_FORM_URLENCODED)  
  55.     @Produces(MediaType.APPLICATION_JSON)  
  56.     public WorkflowResult launchProcess(@FormParam("data") String data){  
  57.         System.out.println("data="+ data);  
  58.         Gson gson = new Gson();  
  59.         WorkflowResult result =  this.controller.saveProcessData(data,2);  
  60.         System.out.println(gson.toJson(result));  
  61.         if(result.isSuccess()){  
  62.             result = this.controller.lauchProcess();  
  63.         }  
  64.         System.out.println(gson.toJson(result));  
  65.           
  66.         return result;  
  67.     }  
  68.       
  69.     @POST  
  70.     @Path("saveProcessStep")  
  71.     @Consumes(MediaType.APPLICATION_FORM_URLENCODED)  
  72.     @Produces(MediaType.APPLICATION_JSON)  
  73.     public WorkflowResult saveProcessStep(@FormParam("data") String data){  
  74.         WorkflowResult result = this.controller.saveProcessData(data,0);  
  75.         return result;  
  76.     }  
  77.       
  78.     //  
  79.     @POST  
  80.     @Path("completeProcessStep")  
  81.     @Consumes(MediaType.APPLICATION_FORM_URLENCODED)  
  82.     @Produces(MediaType.APPLICATION_JSON)  
  83.     public WorkflowResult completeProcessStep(@FormParam("id") String id){  
  84.         WorkflowResult result = this.controller.completeProcessStep(id);  
  85.         return result;  
  86.     }  
  87.       
  88.       
  89.     @POST  
  90.     @Path("test")  
  91.     @Consumes(MediaType.APPLICATION_FORM_URLENCODED)  
  92.     @Produces(MediaType.APPLICATION_JSON)  
  93.     public WorkflowActivity test(@FormParam("zs") String zs){  
  94.         System.out.println("----------------------------");  
  95.         System.out.println(zs);  
  96.         System.out.println("----------------------------");  
  97.         System.out.println(request.getParameter("ss"));  
  98.         WorkflowActivity bo = new WorkflowActivity();  
  99.          if (true) {  
  100.               //  throw new CustomNotFoundException(new WorkflowResult());  
  101.               }  
  102.         return bo;  
  103.           
  104.     }  
  105. }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值