在我的业余时间里,我目前正在尝试恢复以前从未退出私有测试版的一个私有项目(一旦发布,我会写更多的内容)。 该项目包含一个JavaScript富客户端界面以及在Google AppEngine上托管的Java服务器“后端”。 我目前正在完全重写它,因此我从在服务器端创建Jersey REST Api干净地开始,它以JSON公开数据。 此类在泽西岛暴露的类的示例如下:
@Path("/sourcecodeitems")
public class SourceCodeItemGateway { ...@GET@Produces(MediaType.APPLICATION_JSON)public List<sourcecodeitemdto> index(){ArrayList<sourcecodeitemdto> listOfItems = new ArrayList<sourcecodeitemdto>();for (SourceCodeItem item : sourceCodeItems) {listOfItems.add(new SourceCodeItemDTO(item));}return listOfItems;}...
}
相应的web.config如下所示:
<web-app version="2.5" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><servlet><servlet-name>Jersey Web Application</servlet-name><servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class><init-param><param-name>com.sun.jersey.config.property.packages</param-name><param-value>com.jsdev.myproject.service</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>Jersey Web Application</servlet-name><url-pattern>/backend/*</url-pattern></servlet-mapping><welcome-file-list><welcome-file>welcome.jsp</welcome-file></welcome-file-list>
</web-app>
第7行指示您的Jersey资源所在的软件包, 第10行激活您的POJO到Json的自动映射功能。
与Spring整合
为了将Jersey与Spring集成,您首先需要包括Jersey软件包下载随附的jersey-spring- <version> .jar 。 将其包括在您的构建路径中。 然后,您可以使用Spring批注(@Component)配置Jersey资源(上面的SourceCodeItemGateway),或像…一样基于xml进行配置。
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean class="com.jsdev.mydevbook.service.SourceCodeItemGateway" name="sourceCodeItemGateway"><property name="pingService" ref="pingService"></property></bean><bean class="com.jsdev.myproject.service.PingService" id="pingService"></bean></beans>
第3行显示了Jersey资源类的bean配置以及将由Spring管理和注入的已配置依赖项(PingService)。 最后,您需要调整web.config文件以使其在带有Jersey的Spring中正确挂接:
<servlet><servlet-name>jersey-servlet</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.jsdev.myproject.service</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>jersey-servlet</servlet-name><url-pattern>/backend/*</url-pattern>
</servlet-mapping><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring-service.xml/WEB-INF/spring-data.xml</param-value>
</context-param>
请注意,在第3行中 ,我们如何实例化Jersey SpringServlet。 第23和24行显示了Spring配置文件的路径。 先前显示的bean配置是spring-service.xml的摘录。 spring-data.xml应该包含与数据访问相关的所有内容。
参考:在Juri Strumpflohner的TechBlog上 ,我们的JCG合作伙伴 Juri Strumpflohner 将Jersey与Spring集成 在一起 。
相关文章 :
- Spring3 RESTful Web服务
- Tomcat 7 –Eclipse和Maven项目上的带有RESTeasy JAX-RS的RESTful Web服务
- Java Code Geeks Andygene Web原型
- Spring MVC开发–快速教程
- jqGrid,REST,AJAX和Spring MVC集成
翻译自: https://www.javacodegeeks.com/2011/08/integrating-jersey-with-spring.html