我正在尝试将Spring 3.0.5与Jersey 1.4集成。我似乎已经完成了所有工作,但每当我尝试返回指向JSP的Viewable时,我都会收到404错误。当我没有使用弹簧时,我可以使用这个过滤器:
<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,image,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>
是否有人知道实现此目的的正确配置?
感谢您的帮助。
答案 0 :(得分:4)
我发现你可以使用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,所以这对我来说应该是显而易见的!
答案 1 :(得分:1)
这似乎与最近添加到Spring的default Servlet handler类似。
我怀疑jerseyspring Servlet正在处理您的Viewable资源,而不是静态内容处理Servlet(上面链接中讨论的“默认”Servlet)。
如果您将配置更改为使用<url-pattern>/</url-pattern>
会怎样?