【问题标题】:Jersey - not scanning for resources?泽西岛 - 不扫描资源?
【发布时间】: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 映射在哪里?

标签: tomcat logging jersey


【解决方案1】:

您正在尝试使用 Jersey 1 属性(包前缀 com.sun.jersey)配置 Jersey 2 应用程序(包前缀 org.glassfish.jersey)。目前不支持此功能。看看Registering Resources and Providers in Jersey 2 的文章,它解释了如何在 Jersey 2 中实现这样的事情。还有对受支持属性的引用。

注意:您不会看到通知您在 Jersey 2 中找到的资源/提供者的日志消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 2015-11-05
    相关资源
    最近更新 更多