Apache-cxf-with-jax-rs
JAX-RSを使用したApache CXF
この章に進む前に、JavaでRESTful Webサービスを作成する方法を知っていることを前提としています。 このJAX-RS(RESTful WebサービスのJava API)上でCXFを使用する方法を紹介します。 最新の映画のリストを保持するWebサービスを作成します。 ユーザーが映画をリクエストするとき、ユーザーはリクエストで映画IDを指定し、サーバーは映画を見つけてクライアントに返します。 些細なケースでは、実際のバイナリMP4ファイルではなく、映画の名前をクライアントに返すだけです。 JAX-RSアプリケーションの作成を始めましょう。
ムービー要素の宣言
特定の映画のIDと名前を保存するために、MovieというXMLルート要素を宣言します。 この要素は、Movie.javaというファイルで宣言されています。 ファイルの内容はここに示されています-
ムービーサービスデータベースの作成
映画のリストを保存するには、キーと値のペアを保存するJava提供の Map を使用します。 リストが大きい場合は、管理しやすい外部データベースストレージを使用します。 些細なケースでは、データベースには5つの映画だけを保存します。 MovieServiceクラスのコードは以下のとおりです-
次の2つの注釈を使用して、ムービーサービスのURLパスとその戻り値の型を指定することに注意してください-
私たちは@GETと@Pathアノテーションを使用して、GETリクエストのURLを次のように指定します-
ムービーデータベース自体はinitメソッドで初期化され、データベースに5つのムービーアイテムを追加します。
次のタスクは、サーバーアプリケーションを作成することです。
開発サーバー
サーバーを作成するには、CXF提供の JAXRSServerFactoryBean クラスを使用します。
最後に、 factory インスタンスでcreateメソッドを呼び出してサーバーを公開します。
サーバーアプリケーションのコード全体は以下のとおりです-
最終的なpom.xml
ここで、pom.xmlの最終バージョンを以下に含めました-
クライアントの開発
RSクライアントの作成は簡単です。 URLオブジェクトを作成して、そのストリームを開きます。 CXFが提供するIOUtilsクラスを使用して、入力ストリームのコンテンツをローカルストリームにコピーします。
クライアントアプリケーションのコード全体は以下のとおりです-
JAX-RSアプリケーションのテスト
コマンドラインウィンドウで次のコマンドを使用してサーバーを実行します-
今、あなたはコンソールに次のメッセージが表示されます-
今、あなたのブラウザを開き、次のURLを入力します-
ブラウザウィンドウに次のように表示されます。
別のコマンドラインウィンドウで次のコマンドを実行して開発したJavaクライアントアプリケーションを使用して、サービスを呼び出すことができます。
次の出力が表示されます-
CXFサンプルは、JAX-RSでCXFを使用する方法に関するいくつかの例を提供します。 興味のある読者は、これらのサンプルを研究することが奨励されます。