混合弹簧和jersy?

时间:2018-02-12 22:10:27

标签: java spring spring-mvc

我有一个很棒的网络应用程序 我想将它与另一个使用Jersey

实现的JSON中的休息接口的Web应用程序集成

弹簧控制器正在使用RequestMapping,如:

@Controller
public class AdminPrinterController {

@RequestMapping(value = "/contact/view.action")
public @ResponseBody
Map<String, ? extends Object> view() throws Exception {...}

而Jersey控制器看起来像?:

 @Path("/printerList")
 public class PrinterListApi{

@Path("/internalPrinterList/{locationId}")

我整合了代码,但它显然不起作用......可能是因为Spring正在拦截Jersey网址

这是我的春天过滤器映射:

    <filter-mapping>  
        <filter-name>encodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping> 

泽西岛能和春天一起生活吗? 或者我应该切换到Spring rest实现
谢谢

1 个答案:

答案 0 :(得分:1)

这是可能的。您必须在项目中包含spring-jersey依赖项。然后你应该能够使用标准的spring servlet映射。我把它从一个非常古老的项目中拉出来,所以你可能想要检查更新的版本。虽然混合平针织物和弹簧有点乱。我认为更现代的方式是遵循春季启动休息教程。

<dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <!-- if your container implements Servlet API older than 3.0, use "jersey-container-servlet-core" -->
            <artifactId>jersey-container-servlet</artifactId>
            <version>2.23</version>
        </dependency>
<dependency>
            <groupId>org.glassfish.jersey.ext</groupId>
            <artifactId>jersey-spring3</artifactId>
            <version>2.23</version>
            <exclusions>
                <exclusion>
                    <artifactId>jersey-bean-validation</artifactId>
                    <groupId>org.glassfish.jersey.ext</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>bean-validator</artifactId>
                    <groupId>org.glassfish.hk2.external</groupId>
                </exclusion>
            </exclusions>
        </dependency>

抱歉编辑。我忘记了你的web.xml,你必须指向jersey servlet容器。

<servlet>
    <servlet-name>SpringApplication</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>com.application.MainApplication</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>SpringApplication</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>