有许多选项可用于部署到Java EE 6容器(更具体地讲是Servlet 3.0实现):
最简单的是:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_3_0.xsd" version="3.0"> <servlet> <servlet-name>javax.ws.rs.core.Application</servlet-name> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>javax.ws.rs.core.Application</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping></web-app>
然后,在Web应用程序中找到的所有
@Path和
@Provider类都将在servlet URL模式为的“默认” JAX-
RS应用程序中可用
"/rest/*"。
如果您有一个或多个扩展类,则
javax.ws.rs.core.Application可以这样指定:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_3_0.xsd" version="3.0"> <servlet> <servlet-name>com.example.jaxrs.MyApplication</servlet-name> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>com.example.jaxrs.MyApplication</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping></web-app>
如果您只希望在URL上返回特定的
@Path/
@Provider类集,则可能需要执行上述操作(因此,您可以在上面的第二个MyApplication2中使用不同的URL模式)。
您也可以
web.xml完全跳过整个过程,仅注释您的
MyApplication类wih
@ApplicationPath(将用作URL模式)。我建议
web.xml在任何情况下都保留,因为无论如何您可能都必须在其中添加有关Web应用程序的其他信息。
如果您想知道它的
servlet-class来源,环境会自动添加它。您可以通过查看Servlet 3.0来了解一下
ServletContext。



