【发布时间】:2014-01-07 17:07:05
【问题描述】:
我在 Tomcat 中部署了一个 Jersey 应用程序作为 WAR。我的所有资源都得到 404,我正试图找出原因。
由于我启用了 Jersey 日志记录,我看到一条日志消息表明 Jersey 正在初始化:
INFO: org.apache.catalina.startup.HostConfig deployWAR
+INFO: Deploying web application archive myApp.war
INFO: org.glassfish.jersey.server.ApplicationHandler initialize
+INFO: Initiating Jersey application, version Jersey: 2.3.1 2013-09-27 07:50:09... [.logger.j2se.BizManagerHandler]
从其他 SO 帖子来看,我希望在下一行看到这样的日志:
INFO: Scanning for root resource and provider classes in the packages:
com.xxx.restful
我没有看到此日志,也没有任何显示找到的资源的日志 - 所以我不确定扫描是否正在发生。
myApp.war 中的 web.xml 包含以下内容:
<servlet>
<servlet-name>My Servlet</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.example.MyConfig</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.example.myApp.rest</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
<param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
<param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.feature.Trace</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.feature.Debug</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
我假设我做看到的日志是这个 servlet 元素正在部署的证据。
是否有我遗漏的原因:
- 没有进行扫描?
- 正在执行扫描,但未记录?
谢谢
【问题讨论】:
-
你能列出一些 404 URI 和应该使它们工作的注释吗?这个 servlet 映射在哪里?