我使用以下設置在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
?