java - Spring、Jersey 和 Viewable JSP 集成

标签 java spring jersey jax-rs

我正在尝试将 Spring 3.0.5 与 Jersey 1.4 集成。我似乎一切正常,但每当我尝试返回指向 JSP 的 Viewable 时,我都会收到 404 错误。当我不使用 spring 时,我可以使用这个过滤器:

<filter>
    <filter-name>Jersey Filter</filter-name>
    <filter-class>com.sun.jersey.spi.container.servlet.ServletContainer</filter-class>
    <init-param>
        <param-name>com.sun.jersey.config.feature.Redirect</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>cheetah.frontend.controllers</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.config.feature.FilterForwardOn404</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name>
        <param-value>/(images|css|jsp)/.*</param-value>
    </init-param>
</filter>

而且我可以将 Viewable 返回到存储在适当文件夹中的任何 JSP、图像、css。但是,现在我必须使用 SpringServlet 来获得 spring 集成,我不知道如何访问资源,因为我不能使用上面的过滤器。我试过使用这个 servlet 映射,但没有成功:

<servlet>  
    <servlet-name>jerseyspring</servlet-name> 
    <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>  
    <load-on-startup>1</load-on-startup>
    <init-param>
        <param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name>
        <param-value>/(images|css|jsp)/.*</param-value>
    </init-param>
</servlet>  
<servlet-mapping>  
    <servlet-name>jerseyspring</servlet-name>  
    <url-pattern>/*</url-pattern>  
</servlet-mapping>

有谁知道实现此目标的正确配置?

感谢您的帮助。

最佳答案

我发现您可以将 SpringServlet 用作过滤器:

<filter>
    <filter-name>Jersey Filter</filter-name>
    <filter-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</filter-class>
    <init-param>
        <param-name>com.sun.jersey.config.feature.Redirect</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.config.feature.FilterForwardOn404</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name>
        <param-value>/(images|css|jsp)/.*</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>Jersey Filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

自从我在原始过滤器中使用 Servlet 以来,这对我来说真的应该是显而易见的!

关于java - Spring、Jersey 和 Viewable JSP 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4559893/

相关文章:

java - 检查正则表达式是否与可选组匹配

java - Java中什么时候适合使用 continue ?

java - ApplicationListener 处理 ContextClosedEvent 的 NullPointer 警告

javascript - 使用 JQuery/Ajax 获取 session 值

java - 如何获取请求的 URL?

java - 如何在android中滑动布局(线性/相对..)

java - 从枚举返回一个值

html - 属性文件中带有 Thymeleaf -UTF-8 的 Spring Boot CRUD 应用程序

java - 在 Jersey JAX-RS 中将 JSON 对象转换为 Java 对象

rest - 设置 Jersey 以允许缓存?