我使用以下设置在Tomcat 6部署REST Web服务和它的作品:泽西在Tomcat 6 REST风格的部署
<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
。
我错过了什么?当Application
子类设置为web.xml
时,服务器是否仍然扫描WEB-INF
?