48.2. プレーンな Java コンストラクトを返します。
概要
多くの場合、リソースクラスは標準の Java タイプ、JAXB オブジェクト、またはアプリケーションにエンティティープロバイダーがある任意のオブジェクトを返すことができます。このような場合には、ランタイムは返されるオブジェクトの Java クラスを使用して MIME タイプの情報を決定します。ランタイムは、コンシューマーに送信する適切な HTTP リターンコードも決定します。
戻り値の型
リソースメソッドは、void
またはエンティティーライターが提供されている Java 型を返すことができます。デフォルトでは、ランタイムには以下のプロバイダーがあります。
- Java プリミティブ
-
Java プリミティブの
Number
表現 - JAXB オブジェクト
「ネイティブでサポートされるタイプ」 は、デフォルトでサポートされるすべての戻り値のタイプを一覧表示します。「カスタムライター」 は、カスタムエンティティーライターの実装方法を記述します。
MIME タイプ
ランタイムは、最初にリソースメソッドおよび @Produces
アノテーションのリソースクラスをチェックして、返されるエンティティーの MIME タイプを決定します。見つかった場合は、アノテーションで指定された MIME タイプを使用します。リソース実装によって指定されたものが見つからない場合は、エンティティープロバイダーにより、適切な MIME タイプを決定します。
デフォルトでは、ランタイムは MIME タイプを以下のように割り当てます。
-
Java プリミティブおよびその
Number
表現には、MIME タイプのapplication/octet-stream
が割り当てられます。 -
JAXB オブジェクトには、
application/xml
の MIME タイプが割り当てられます。
アプリケーションは、「カスタムライター」 で説明されているようにカスタムエンティティープロバイダーを実装して、他のマッピングを使用できます。
レスポンスコード
リソースメソッドがプレーンな Java 構造を返す場合、リソースメソッドが例外を出力せずに完了すると、ランタイムは応答のステータスコードを自動的に設定します。ステータスコードは以下のように設定されます。
-
204
(コンテンツなし) - リソースメソッドの戻り値の型はvoid
です。 -
204
(コンテンツなし) - 返されるエンティティーの値はnull
です。 -
200
(OK) - 返されるエンティティーの値はnull
ではありません。
リソースメソッドが完了する前に例外が出力された場合に、50章例外処理 で説明されているようにリターンステータスコードを設定します。