48.2. 返回普通 Java 结构
概述
在许多情形中,资源类可以返回标准的 Java 类型、JAXB 对象或应用具有实体提供程序的任何对象。在这些情况下,运行时使用所返回对象的 Java 类确定 MIME 类型信息。运行时还会决定要发送到消费者的适当 HTTP 返回代码。
可返回的类型
资源方法可以返回 void
或提供实体写入器的任何 Java 类型。默认情况下,运行时有以下供应商:
- Java 原语
-
Java 原语的数字表示
- JAXB 对象
“原生支持的类型”一节 列出默认支持的所有返回类型。“自定义写入器”一节 介绍如何实施自定义实体写入器。
MIME 类型
运行时首先检查 @Produces
注释的资源方法和资源类型,来确定返回的实体的 MIME 类型。如果找到了一项,它将使用注解中指定的 MIME 类型。如果没有找到资源实施指定的资源,它依赖于实体供应商来确定正确的 MIME 类型。
默认情况下,运行时分配 MIME 类型,如下所示:
-
Java 原语及其数字表示会被分配一个 MIME 型应用程序
/octet-stream
。 -
JAXB 对象被分配了 MIME 型
application/xml
。
应用程序可通过实施自定义实体供应商(如 “自定义写入器”一节 所述)来使用其他映射。
响应代码
当资源方法返回普通 Java 构造时,如果资源方法在没有引发异常的情况下,运行时会自动设置响应的状态代码。状态代码设置如下:
-
204
(无内容)- 资源方法返回类型为void
-
204
(无内容)- 返回的实体的值是null
-
200
(OK)-- 返回实体的值不为空
如果在资源方法完成返回状态代码前抛出异常,如 第 50 章 处理例外 所述。