【发布时间】:2015-02-11 20:07:45
【问题描述】:
我已部署 Jersey 2.5 应用程序作为过滤器,但在访问此(或任何资源)url 时出现 HTTP 状态 404 - Not Found 错误:
localhost:8080/[appname]/rest/users/new
此 URL 以前在应用程序部署为 servlet 时有效。如果我将“过滤器”标签转换为“servlet”标签,该网址将再次起作用。
启动时也不例外,之前设置的断点不再被触发。就好像找不到资源类一样。知道可能出了什么问题吗?
我的 web.xml:
<filter>
<filter-name>jerseywebapp</filter-name>
<filter-class>org.glassfish.jersey.servlet.ServletContainer</filter-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.[pkg].resources</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>
org.glassfish.jersey.media.multipart.MultiPartFeature,
org.glassfish.jersey.server.mvc.jsp.MvcFeature,
org.glassfish.jersey.server.mvc.jsp.JspMvcFeature,
org.glassfish.jersey.jackson.JacksonFeature
</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.mvc.templateBasePath.jsp</param-name>
<param-value>/WEB-INF/views</param-value>
</init-param>
<!--
<load-on-startup>1</load-on-startup>
-->
</filter>
<filter-mapping>
<filter-name>jerseywebapp</filter-name>
<url-pattern>/rest/*</url-pattern>
</filter-mapping>
【问题讨论】:
-
Jersey JSP MVC 模板的限制想要使用 JSP 模板支持的 Jersey Web 应用程序应该在应用程序的 web.xml 中注册为 Servlet 过滤器而不是 Servlet。对于需要使用 Jersey MVC 模板支持的 Web 应用程序,目前不支持 Servlet 3.0 中引入的 web.xml-less 部署样式。
-
冒着放弃未解决问题的风险,我必须报告我正在将 Jersey 作为 Servlet 运行,并且一切正常。
-
@broadbear,您是否找到过解决方案或有关此问题的更多信息?
标签: java rest servlet-filters jersey-2.0