使用 JAX-RS 1.1 方法配置 JAX-RS 应用程序
根据您的需要,可以通过多种方式来配置 Java™ API for RESTful Web Services (JAX-RS) 应用程序。要利用 Java Platform, Enterprise Edition (Java EE) 6 功能,您可以使用注释扫描功能。 通过使用注释扫描,您可以省略 JAX-RS javax.ws.rs.core.Application 子类或具有已至少定义的 javax.ws.rs.core.Application 子类。
关于此任务
JAX-RS 1.1 规范支持几种新方式来配置 JAX-RS 应用程序。可以使用内置的注释扫描来帮助您自动配置应用程序。可以选择性地将 javax.ws.rs.core.Application 子类添加到应用程序,然后添加使用 javax.ws.rs.ApplicationPath 注释或 web.xml Servlet 定义时所需的 URL 模式。使用 IBM® JAX-RS 实现时,不必指定 Servlet 类实现,这是因为在 JAX-RS 应用程序启动时会将其自动添加到 Web 模块的配置中。
使用 web.xml 文件时,必须使用 Java Servlet 3.0 web.xml 文件。
过程
- 在 web.xml 文件中,只使用一个 JAX-RS 缺省应用程序来配置 JAX-RS 应用程序。 如果只需要一个 JAX-RS 应用程序并且所有资源类都位于单个 URL 模式后面,请使用此方法。如果需要,还可以使用此方法指定安全性约束。
- 将所有 JAX-RS 资源和提供程序类添加到 Web 应用程序的 WEB-INF/classes 或 WEB-INF/lib 目录。 不需要将 javax.ws.rs.core.Application 子类添加到 Web 应用程序。
- 在 web.xml 文件中,添加具有 javax.ws.rs.core.Application 的 Servlet 定义以作为 Servlet 名称。 不需要添加 Servlet 类。必须将 Servlet URL 模式添加到 web.xml 文件。在 JAX-RS 应用程序启动时,应用程序服务器运行时环境会将特定的 IBM JAX-RS 实现添加到 Web 模块的配置中;例如:
现在,JAX-RS 资源在诸如以下的 URL 处可用:<?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> </servlet> <servlet-mapping> <servlet-name>javax.ws.rs.core.Application</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app>
http://{hostname}:{port}/{context_root_of_Web_ module}/{value_of_Web.xml_URL_pattern}/{value_of_@javax.ws.rs.Path}
- 使用 javax.ws.rs.core.Application 子类和 web.xml 文件来配置 JAX-RS 应用程序。 如果需要多个 JAX-RS 应用程序或者只需要具有特定 URL 模式的特殊 JAX-RS 应用程序的特定资源,请使用此方法。如果需要,还可以使用此方法指定安全性约束。
- 创建 javax.ws.rs.core.Application 子类。 在 javax.ws.rs.core.Application 子类 getClasses() 或 getSingletons() 方法中,返回相关的 JAX-RS 资源及提供程序。如果同时在 getClasses() 和 getSingletons() 方法中都返回空集,那么会将在应用程序中找到的所有 JAX-RS 资源和提供程序类都添加到 JAX-RS 应用程序子类;例如:
此示例使用了 javax.ws.rs.core.Application 子类 getClasses() 和 getSingletons() 方法的缺省实现,这些方法将返回空集。因此,假设所有相关 JAX-RS 类都由 javax.ws.rs.core.Application 子类返回。package com.example; public class MyApplication extends javax.ws.rs.core.Application { }
- 将 javax.ws.rs.core.Application 子类添加到 Web 应用程序中。
- 在 web.xml 文件中添加部分 Servlet 定义。 Servlet 名称是 javax.ws.rs.core.Application 子类的全名。请勿定义 Servlet 类。必须将 Servlet URL 模式添加到 web.xml 文件。在 JAX-RS 应用程序启动时,应用程序服务器运行时环境会将特定的 IBM JAX-RS 实现添加到 Web 模块的配置中;例如:
现在,JAX-RS 资源在诸如以下的 URL 处可用:<?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.MyApplication</servlet-name> </servlet> <servlet-mapping> <servlet-name>com.example.MyApplication</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app>
http://{hostname}:{port}/{context_root_of_Web_ module}/{value_of_Web.xml_URL_pattern_for_Application_subclass}/{value_of_@javax.ws.rs.Path}
- 创建 javax.ws.rs.core.Application 子类。 在 javax.ws.rs.core.Application 子类 getClasses() 或 getSingletons() 方法中,返回相关的 JAX-RS 资源及提供程序。如果同时在 getClasses() 和 getSingletons() 方法中都返回空集,那么会将在应用程序中找到的所有 JAX-RS 资源和提供程序类都添加到 JAX-RS 应用程序子类;例如:
- 在不使用 web.xml 文件的情况下配置 JAX-RS 应用程序。 如果不想使用 web.xml 文件,请使用此方法。使用此方法时,不能指定安全性约束。要指定安全性约束,必须使用 web.xml 文件。
- 创建 javax.ws.rs.core.Application 子类。 在 javax.ws.rs.core.Application 子类 getClasses() 或 getSingletons() 方法中,返回相关的 JAX-RS 资源及提供程序。如果同时在 getClasses() 和 getSingletons() 方法中都返回空集,那么会将在应用程序中找到的所有 JAX-RS 资源和提供程序类都添加到 JAX-RS 应用程序子类;例如:
此示例使用了 javax.ws.rs.core.Application 子类 getClasses() 和 getSingletons() 方法的缺省实现,这些方法将返回空集。因此,假设所有相关 JAX-RS 类都由 javax.ws.rs.core.Application 子类返回。package com.example; public class MyApplication extends javax.ws.rs.core.Application { }
- 将 javax.ws.rs.ApplicationPath 注释添加到 javax.ws.rs.core.Application 子类。 JAX-RS 1.1 规范支持 ApplicationPath 注释。ApplicationPath 注释的值将用作 Servlet URL 模式,该 Servlet URL 模式与 web.xml 文件中的 Servlet URL 模式相同;例如:
package com.example; @javax.ws.rs.ApplicationPath("rest") public class MyApplication extends javax.ws.rs.core.Application { }
- 将 javax.ws.rs.core.Application 子类添加到 Web 应用程序中。 当应用程序启动时,这些资源将在以下 URL 处可用:
http://{hostname}:{port}/{context_root_of_Web_ module}/{value_of_@javax.ws.rs.ApplicationPath}}/{value_of_@javax.ws.rs.Path}
- 创建 javax.ws.rs.core.Application 子类。 在 javax.ws.rs.core.Application 子类 getClasses() 或 getSingletons() 方法中,返回相关的 JAX-RS 资源及提供程序。如果同时在 getClasses() 和 getSingletons() 方法中都返回空集,那么会将在应用程序中找到的所有 JAX-RS 资源和提供程序类都添加到 JAX-RS 应用程序子类;例如:
结果


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_configjaxrs11method
文件名:twbs_jaxrs_configjaxrs11method.html