原本以为根据文档集成resteasy与spring很简单,但是却还是花费的一定时间,避免大家走弯路----现在网上有的相关的集成都只是,spring加入进项目,木有与resteasy真正集成
老规矩,先上MAVEN的配置文件中依赖包:
- <dependencies>
- <!--corelibrary-->
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-jaxrs</artifactId>
- <version>2.2.1.GA</version>
- </dependency>
- <!--optionalmodules-->
- <!--Springintegration-->
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-spring</artifactId>
- <version>2.2.1.GA</version>
- </dependency>
- <!--JAXBsupport-->
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-jaxb-provider</artifactId>
- <version>2.2.1.GA</version>
- </dependency>
- <!--spring-->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring</artifactId>
- <version>2.5.6.SEC03</version>
- </dependency>
- </dependencies>
注意上图中得resteasy-spring模块依赖,和spring依赖
resteasy-spring直接配置似乎不能自动下载,如果不行可以自己去官网下载然后安装到私服仓库
还有spring的依赖必须是要有的,resteasy-spring只是提供集成代码
2.关键的web.xml中得配置
- <!DOCTYPEweb-appPUBLIC
- "-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN"
- "http://java.sun.com/dtd/web-app_2_3.dtd">
- <web-app>
- <display-name>ArchetypeCreatedWebApplication</display-name>
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath*:applicationContext*.xml</param-value>
- </context-param>
- <!--
- <context-param>
- <param-name>resteasy.scan.resources</param-name>
- <param-value>true</param-value>
- </context-param>
- -->
- <listener>
- <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
- </listener>
- <listener>
- <listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class>
- </listener>
- <servlet>
- <servlet-name>Resteasy</servlet-name>
- <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>Resteasy</servlet-name>
- <url-pattern>/*</url-pattern>
- </servlet-mapping>
- </web-app>
相比原来的配置文件多了
- <listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class>
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath*:applicationContext*.xml</param-value>
- </context-param>
3.application.xml的配置
- <?xmlversion="1.0"encoding="UTF-8"?>
- <beansxmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
- <!--servicepoint-->
- <beanid="testServicePoint"class="com.jd.interfacce.service.point.TestServicePoint">
- <propertyname="manager"ref="manager"/>
- </bean>
- <!--MANAGER-->
- <beanid="manager"class="com.jd.interfacce.manager.impl.ManagerImpl"/>
- </beans>
其中
- testServicePoint
是我们的资源resouce也就是发布接口的类
4.资源类
- packagecom.jd.interfacce.service.point;
- importjavax.ws.rs.GET;
- importjavax.ws.rs.Path;
- importjavax.ws.rs.PathParam;
- importcom.jd.interfacce.manager.Manager;
- /**
- *servicepointendpoint
- *@author
- *
- */
- @Path(value="/")
- publicclassTestServicePoint{
- Managermanager;
- @GET
- @Path(value="/echo/{message}")
- publicStringgetMessage(@PathParam(value="message")Stringmessage)
- {
- //returnmessage;
- returnmanager.getMessage(message);
- }
- publicManagergetManager(){
- returnmanager;
- }
- publicvoidsetManager(Managermanager){
- this.manager=manager;
- }
- }
5.manager类
- packagecom.jd.interfacce.manager.impl;
- importcom.jd.interfacce.manager.Manager;
- publicclassManagerImplimplementsManager{
- @Override
- publicStringgetMessage(Stringmessage)
- {
- returnmessage;
- }
- }