2014-01-07 8 views
3

У меня есть приложение Джерси, развернутое как WAR в Tomcat. Я получаю 404s для всех своих ресурсов, и я пытаюсь выяснить, почему.Джерси - не сканирование ресурсов?

Поскольку я включен Джерси каротаж, я вижу регистрационное сообщение, указывающее, что Джерси инициализирует:

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 

Я не вижу этот журнал, ни какой-либо журнал, показывая найденные ресурсы - поэтому я не уверен, что происходит сканирование.

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> 

Я предполагаю, что журнал я сделать см доказательства того, что этот сервлет элемент развертывается.

Есть причина, я пропускаю почему либо:

  • сканирование не происходит?
  • Сканирование происходит, но не регистрируется?

Благодаря

+0

Вы можете перечислить некоторые из 404 URI, и аннотаций, которые должны были сделать их работу? Где этот сервлет отображается? – nitind

ответ

5

Вы пытаетесь настроить Джерси 2 приложения (пакет префикс org.glassfish.jersey) с Джерси 1 свойствами (пакет префиксов com.sun.jersey). На данный момент это не поддерживается. Взгляните на статью Registering Resources and Providers in Jersey 2, в которой объясняется, как достичь такой цели в Джерси 2. Есть также ссылки на поддерживаемые свойства.

Примечание: Вы не увидите журнальные сообщение, информирующее вас о найденных ресурсов/провайдеров в Джерси 2.

Смежные вопросы