Hitachi

Cosminexus V11 アプリケーションサーバ Webサービス開発ガイド


13.2.1 ディスカバリとディスパッチ

ここでは,Webリソースのディスカバリ,ディスパッチ,およびフォルトと例外クラスのマッピングについて説明します。

〈この項の構成〉

(1) ディスカバリ

ディスカバリでは,HTTPリクエストで要求されたURLから,リソースクラスをマッピングする処理が行われます。ここでは,次のURLが要求された場合のマッピングについて説明します。

http://example.org/sample/rootA

コンテキストルートを"sample"とした場合,コンテキストルートの後ろの"/rootA"(下線部)はパス情報を表します。このパス情報を基に,リソースクラスがマッピングされます。

パス情報とのマッピングの例を次に示します。なお,この例では,リソースクラスとして,サブリソースクラスを使用しないで,ルートリソースクラスだけを使用します。また,各ルートリソースクラスはリソースメソッドだけを持ちます。

図13‒1 ディスカバリ

[図データ]

JAX-RSエンジンは,デプロイされているルートリソースクラスのうち,Pathアノテーションの値がパス情報に等しいものを呼び出します。

パス情報と,呼び出されるルートリソースクラスの対応を示します。

なお,サブリソースクラスがデプロイされていて,対応するサブリソースロケータのPathアノテーションの値がパス情報に等しい場合は,そのサブリソースクラスを呼び出します。

(2) HTTPメッセージのディスパッチ

JAX-RSエンジンは,受信したHTTPメッセージの内容(Content-Type HTTPヘッダ)と受け入れできるメディアタイプ(Accept HTTPヘッダ)に応じて,リソースメソッドを呼び出し,実行します。ディスパッチはConsumesアノテーションおよびProducesアノテーションで指定されたメディアタイプによって実行されます。

なお,リソースクラスにサブリソースメソッドが含まれている場合は,ディスカバリとディスパッチの判定が同時に行われます。