有许多选项可用于部署到 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 应用程序中找到的所有 和 类都将在“缺省”JAX-RS 应用程序中可用,其 servlet URL 模式为 。@Path
@Provider
"/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上返回特定的/类集,您可能希望执行上述操作(因此您可以在上面使用具有不同URL模式的第二个MyApplication2)。@Path
@Provider
您也可以完全跳过整个,只需注释您的类,这将用作URL模式。无论如何,我建议保留,因为无论如何,您可能都必须添加有关Web应用程序的其他信息。web.xml
MyApplication
@ApplicationPath
web.xml
如果您想知道它来自哪里,它会由环境自动添加进来。您可以通过查看Servlet 3.0来获得一个想法。servlet-class
ServletContext