Menu Close

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章例外の処理 で説明されているように、戻りステータスコードが設定されます。