48.2. 返回普通 Java 结构


概述

在很多情况下,资源类可以返回标准 Java 类型、一个 JAXB 对象或应用具有实体提供程序的任何对象。在这些情况下,运行时使用所返回的对象的 Java 类来确定 MIME 类型信息。运行时还决定要发送给消费者的适当 HTTP 返回代码。

可返回的类型

资源方法可以返回 void 或提供实体写入器的任何 Java 类型。默认情况下,运行时有以下内容的供应商:

  • Java 原语
  • Java 原语 的数量 表示
  • JAXB 对象

“原生支持的类型”一节 列出默认支持的所有返回类型。“自定义写入器”一节 描述如何实施自定义实体写入器。

MIME 类型

运行时首先检查 @Produces 注释的资源方法和资源类来确定返回的实体的 MIME 类型。如果找到,它将使用注解中指定的 MIME 类型。如果找不到由资源实现指定的资源,它依赖于实体供应商来确定正确的 MIME 类型。

默认情况下,运行时分配 MIME 类型,如下所示:

  • Java 原语及其 数量 表示被分配一个 MIME 类型 application/octet-stream
  • 为 JAXB 对象分配 MIME 类型 application/xml

应用程序可以通过实现自定义实体供应商来使用其他映射,如 “自定义写入器”一节 所述。

响应代码

当资源方法返回普通 Java 结构时,如果资源方法完成,则运行时会自动设置响应的状态代码,而不抛出异常。状态代码设置为如下:

  • 204(无内容)- 资源方法的返回类型是 void
  • 204(无内容)- 返回实体的值为 null
  • 200(OK)- 返回实体的值不是 null

如果在资源方法完成前抛出异常,则返回状态代码会被设置,如 第 50 章 处理例外 所述。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.