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章例外処理 で説明されているようにリターンステータスコードを設定します。