我正在使用以下设置在 Tomcat 6 上部署 REST Web 服务,它可以工作:
<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