如何将Jersey集成到Spring MVC应用程序中

我最近开始使用Java为Podcastpedia.orgJAX-RS实现构建公共的REST API,我选择了Jersey ,因为我发现它“自然”且功能强大-您可以通过遵循教程了解更多信息-带有Jersey和Spring的Java中的REST API设计和实现。 由于Podcastpedia.org是由Spring MVC支持的Web应用程序,因此我想将这两个框架都集成在podcastpedia-web中 ,以利用项目中已经存在的后端服务功能。 无论如何,这篇简短的帖子将介绍我为使两个框架之间的集成起作用而必须采取的步骤。

框架版本

当前使用的版本:

Spring和Jersey二手版本

<properties>
    <spring.version>4.1.0.RELEASE</spring.version>
    <jersey.version>2.14</jersey.version>
</properties>

项目依赖

Jersey Spring扩展名必须出现在项目的类路径中。 如果使用的是Maven,请将其添加到项目的pom.xml文件中:

依赖关系片段– pom.xml

<!-- Jersey-Spring http://mvnrepository.com/artifact/org.glassfish.jersey.ext/jersey-spring3/2.4.1 -->
<dependency>
    <groupId>org.glassfish.jersey.ext</groupId>
    <artifactId>jersey-spring3</artifactId>
    <version>${jersey.version}</version>
    <exclusions>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
    <version>${jersey.version}</version>
    <exclusions>
        <exclusion>
            <groupId>com.fasterxml.jackson.jaxrs</groupId>
            <artifactId>jackson-jaxrs-base</artifactId>
        </exclusion>        
        <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
        </exclusion>
        <exclusion>
            <groupId>com.fasterxml.jackson.jaxrs</groupId>
            <artifactId>jackson-jaxrs-json-provider</artifactId>
        </exclusion>                            
    </exclusions>
</dependency>

注意:我已经明确排除了Spring核心和Jackson实施库,因为它们已经以首选版本导入了项目。

Web.xml配置

web.xml ,除了Spring MVC servlet配置之外,我还添加了jersey-servlet配置,该配置将映射以/api/开头的所有请求:

来自web.xml的配置代码段

<servlet>
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:spring/application-context.xml                   
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>        
<servlet-mapping>
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
 
<servlet>
    <servlet-name>jersey-serlvet</servlet-name>
    <servlet-class>
        org.glassfish.jersey.servlet.ServletContainer
    </servlet-class>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>org.podcastpedia.web.api.JaxRsApplication</param-value>            
    </init-param>        
    <load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>jersey-serlvet</servlet-name>
    <url-pattern>/api/*</url-pattern>
</servlet-mapping>

好吧,差不多了...如果您有任何问题,请在下面的讨论中给我留言或发表评论。

在接下来的文章中,我将通过展示如何使用jQuery调用REST公共API的一种方法,动态加载播客的最新剧集来保持这种集成的结果,敬请关注。

翻译自: https://www.javacodegeeks.com/2015/01/how-to-integrate-jersey-in-a-spring-mvc-application.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值