在我的業余時間里,我目前正在嘗試恢復以前從未退出私有測試版的一個私有項目(一旦發布,我會寫更多的內容)。 該項目包含一個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