泽西岛 - 没有扫描资源?

sli*_*lim 4 logging tomcat jersey

我在Tomcat中将Jersey应用程序部署为WAR.我得到了所有资源的404s,我正在试图找出原因.

由于我启用了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]
Run Code Online (Sandbox Code Playgroud)

从其他SO帖子来看,我希望看到这样的日志作为下一行:

INFO: Scanning for root resource and provider classes in the packages:
    com.xxx.restful
Run Code Online (Sandbox Code Playgroud)

我没有看到此日志,也没有显示找到资源的任何日志 - 所以我不确定扫描是否正在发生.

web.xml范围内myApp.war包含此:

<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>
Run Code Online (Sandbox Code Playgroud)

我想我的日志看到的证据表明,这个servlet元素正在部署.

有没有理由我错过了为什么:

  • 扫描没有发生?
  • 扫描正在进行,但没有记录?

谢谢

Mic*_*dos 6

您正在尝试org.glassfish.jersey使用Jersey 1属性(包前缀com.sun.jersey)配置Jersey 2应用程序(包前缀).目前不支持此功能.看一下Jersey 2中注册资源和提供者的文章,该文章解释了如何在Jersey 2中实现这样的功能.还有对支持的属性的引用.

注意:您不会看到有关Jersey 2中找到的资源/提供商的日志消息.