利用resteasy框架构建rest webservice----第四波:resteasy与spring真正集成发布我们的restful webservice 服务(实例、教程)

思路:这节我们把resteasy和spring结合了(非spring mvc),我的理解就是资源都交给spring来管理了,我们需要的资源需要到spring容器之中去获取大笑


问题汇总:一直出现org.jboss.resteasy.plugins.spring.SpringContextLoaderListener这个类找不到,而实际上本地仓库是已经有了,经过检查eclipse映射的发布项目

发现没有resteasy-spring这个JAR包拿过去

1.  <context-param>
        <param-name>resteasy.scan.resources</param-name>      
        <param-value>true</param-value>
    </context-param> -->


这个东西可能不能写,写了发现有问题,原因不详


2.如果使用m2eclipse的话,可能必须在m2eclipse中执行eclipse命令


3.不得已的话添加MAVEN依赖试试








原本以为根据文档集成resteasy与spring很简单,但是却还是花费的一定时间,避免大家走弯路----现在网上有的相关的集成都只是,spring加入进项目,木有与resteasy真正集成

老规矩,先上MAVEN的配置文件中依赖包:

[html] view plain copy
  1.  <dependencies>  
  2.    <!-- core library -->  
  3.    <dependency>  
  4.       <groupId>org.jboss.resteasy</groupId>  
  5.       <artifactId>resteasy-jaxrs</artifactId>  
  6.       <version>2.2.1.GA</version>  
  7.    </dependency>  
  8.   
  9.    <!-- optional modules -->  
  10.      <!-- Spring integration -->  
  11.    <dependency>  
  12.       <groupId>org.jboss.resteasy</groupId>  
  13.       <artifactId>resteasy-spring</artifactId>  
  14.       <version>2.2.1.GA</version>  
  15.    </dependency>  
  16.       
  17.    <!-- JAXB support -->  
  18.    <dependency>  
  19.       <groupId>org.jboss.resteasy</groupId>  
  20.       <artifactId>resteasy-jaxb-provider</artifactId>  
  21.       <version>2.2.1.GA</version>  
  22.    </dependency>  
  23.       
  24.    <!-- spring -->  
  25.             <dependency>  
  26.                 <groupId>org.springframework</groupId>  
  27.                 <artifactId>spring</artifactId>  
  28.                                 <version>2.5.6.SEC03</version>  
  29.                        </dependency>  
  30. </dependencies>  

注意上图中得resteasy-spring模块依赖,和spring依赖

resteasy-spring直接配置似乎不能自动下载,如果不行可以自己去官网下载然后安装到私服仓库

还有spring的依赖必须是要有的,resteasy-spring只是提供集成代码

2.关键的web.xml中得配置

[html] view plain copy
  1. <!DOCTYPE web-app PUBLIC  
  2.  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"  
  3.  "http://java.sun.com/dtd/web-app_2_3.dtd" >  
  4.   
  5. <web-app>  
  6.   <display-name>Archetype Created Web Application</display-name>  
  7.   <context-param>  
  8.         <param-name>contextConfigLocation</param-name>  
  9.         <param-value>classpath*:applicationContext*.xml</param-value>  
  10.     </context-param>  
  11.   <!--  
  12.       
  13.     <context-param>      
  14.       
  15.         <param-name>resteasy.scan.resources</param-name>      
  16.         <param-value>true</param-value>  
  17.     </context-param>      
  18.     -->  
  19.   <listener>  
  20.       <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>  
  21.    </listener>  
  22.   
  23. <listener>  
  24.     <listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class>  
  25.   </listener>  
  26.    <servlet>  
  27.       <servlet-name>Resteasy</servlet-name>  
  28.       <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>  
  29.    </servlet>  
  30.   
  31.    <servlet-mapping>  
  32.       <servlet-name>Resteasy</servlet-name>  
  33.       <url-pattern>/*</url-pattern>  
  34.    </servlet-mapping>  
  35.     
  36. </web-app>  

相比原来的配置文件多了
[html] view plain copy
  1. <listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class>  

[html] view plain copy
  1. <context-param>  
  2.         <param-name>contextConfigLocation</param-name>  
  3.         <param-value>classpath*:applicationContext*.xml</param-value>  
  4.     </context-param>  

3.application.xml的配置

[html] view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans  
  5. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd ">   
  6.     <!-- service point -->  
  7.     <bean id="testServicePoint" class="com.jd.interfacce.service.point.TestServicePoint">  
  8.         <property name="manager" ref="manager" />  
  9.     </bean>  
  10.     <!-- MANAGER -->  
  11.     <bean id="manager" class="com.jd.interfacce.manager.impl.ManagerImpl"/>  
  12. </beans>  

其中
[html] view plain copy
  1. testServicePoint  

是我们的资源resouce也就是发布接口的类

4.资源类

[java] view plain copy
  1. package com.jd.interfacce.service.point;  
  2.   
  3. import javax.ws.rs.GET;  
  4. import javax.ws.rs.Path;  
  5. import javax.ws.rs.PathParam;  
  6.   
  7. import com.jd.interfacce.manager.Manager;  
  8. /** 
  9.  * service point endpoint 
  10.  * @author  
  11.  * 
  12.  */  
  13. @Path(value = "/")  
  14. public class TestServicePoint {  
  15.     Manager manager;  
  16.       
  17.     @GET  
  18.     @Path(value = "/echo/{message}")  
  19.     public String getMessage(@PathParam(value = "message") String message)  
  20.     {  
  21. //      return message;  
  22.         return manager.getMessage(message);  
  23.     }  
  24.       
  25.     public Manager getManager() {  
  26.         return manager;  
  27.     }  
  28.     public void setManager(Manager manager) {  
  29.         this.manager = manager;  
  30.     }  
  31. }  

5.manager类
[java] view plain copy
  1. package com.jd.interfacce.manager.impl;  
  2.   
  3. import com.jd.interfacce.manager.Manager;  
  4.   
  5. public class ManagerImpl implements Manager{  
  6.     @Override  
  7.     public String getMessage(String message)  
  8.     {  
  9.         return message;  
  10.     }  

你可能感兴趣的:(利用resteasy框架构建rest webservice----第四波:resteasy与spring真正集成发布我们的restful webservice 服务(实例、教程))