搜索

第 2 章 开发 JAX-RS Web 服务

download PDF

JAX-RS 是 RESTful Web 服务的 Java API。它通过使用注释,为使用 REST 构建 Web 服务提供支持。这些注释简化了将 Java 对象映射到 Web 资源的过程。

RESTEasy 是红帽 JBoss 企业应用平台 7 实施 JAX-RS,完全符合 JSR 370:适用于 RESTful Web 服务的 Java™ API(JAX-RS 2.1) 规范。它还为规范提供了额外的功能。

红帽 JBoss 企业应用平台的 7.3 版本还符合 Jakarta 企业 Web 服务 1.4Jakarta RESTful Web Services 2.1 Jakarta EE 规范。

要开始使用 JAX-RS,请参阅红帽 JBoss 企业应用平台 7 提供的 helloworld-rs、jaxrs-clientkitchensink 快速入门。

注意

JBoss EAP 不支持 resteasy-cryptoresteasy-yaml-providerjose-jwt 模块。

2.1. JAX-RS 应用

在创建供应商和 Web 资源时,您可以使用以下命令来声明它们:

  • 不带 web.xml 文件的 javax.ws.rs.core.Application 的简单子类别.
  • 使用 web.xml 文件.
  • 子类 javax.ws.rs.core.Application 并提供自定义实施.

2.1.1. 简单子类 javax.ws.rs.core.Application

您可以使用 javax.ws.rs.core.Application 类来创建声明这些提供程序和 Web 资源的子类。此类由 JBoss EAP 随附的 RESTEasy 库提供。

若要使用 javax.ws.rs.core.Application 配置资源或提供程序,只需创建一个扩展它的类并添加 @ApplicationPath 注释。

示例:应用程序类

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/root-path")
public class MyApplication extends Application
{
}

2.1.2. 使用 web.xml

或者,如果您不想创建扩展 javax.ws.rs.core.Application 的类,您可以将以下内容添加到您的 web.xml 文件中:

示例:web.xml

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <servlet>
      <servlet-name>javax.ws.rs.core.Application</servlet-name>
  </servlet>
  <servlet-mapping>
      <servlet-name>javax.ws.rs.core.Application</servlet-name>
      <url-pattern>/root-path/*</url-pattern>
  </servlet-mapping>
  ...
</web-app>

2.1.3. 带有自定义实现的子类 javax.ws.rs.core.Application

在子类 javax.ws.rs.core.Application 时,您可以选择为任何现有方法提供自定义实施。getClassesgetSingletons 方法返回一系列必须包含在发布的 JAX-RS 应用中的类或单例集合。

  • 如果 getClassesgetSingletons 返回了 非空集合,则 JAX-RS 应用 中仅 发布了这些类和单例。
  • 如果 getClassesgetSingletons 都 返回一个空集合,则 Web 应用中打包 的所有 根资源类和提供程序 都包含 在 JAX-RS 应用中。RESTEasy 随后将自动发现这些资源。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.