Я использую следующие настройки для развертывания REST веб-сервиса на сервере Tomcat 6, и она работает:Джерси RESTful развертывание на сервере Tomcat 6
<web-app>
<servlet>
<servlet-name>RestServlet</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>RestServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
С выше настройками, Tomcat сканирует WEB-INF/classes
и WEB-INF/lib
папки для ресурсов.
Затем я изменил его на следующую установку использовать Application
суб-класс:
<web-app>
<servlet>
<servlet-name>RestServlet</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>test.MyApplication</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>RestServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
где test.MyApplication
является подкласс Application
возвращение класса ресурсов:
public class MyApplication extends Application {
public Set<Class<?>> getClasses() {
Set<Class<?>> s = new HashSet<Class<?>>();
s.add(MyResource.class);
return s;
}
}
Но все-таки сервер сканирует WEB-INF/classes
и WEB-INF/lib
за ресурсы.
Что мне не хватает? Проверяет ли сервер WEB-INF
, когда Application
подкласс установлен в web.xml
?