このタスクについて
アプリケーションが Cloudant Java クライアント API を使用できるようにするには、
server.xml ファイル内で、次の項目を構成する必要があります。
- ドライバー用の共有ライブラリーと、共有ライブラリーが依存するライブラリー
- 共有ライブラリーへの参照
そうすると、サーバーの追加構成を行うことなく、アプリケーションはクライアント API に直接アクセスできるようになります。詳しくは、Cloudant の資料を参照してください。ClientBuilder は CloudantClient インスタンスを作成でき、それらを使用すれば、データベース・ビューの検索や作成、および他のタスクを実行できます。Database は、アプリケーションが、作成、更新、および変更の操作を実行することを許可します。
アプリケーションが ClientBuilder インスタンスまたは Database インスタンスを注入できるようにするには、
サーバー構成内で、cloudant-1.0 フィーチャーを有効にし、Cloudant リソースを構成する必要があります。Liberty ランタイムは、
Database インスタンスを作成するために使用する CloudantClient インスタンスのライフサイクルを管理します。
- アプリケーションおよび Liberty ランタイムがアクセスできる場所に、Cloudant Java クライアント・ライブラリーおよびその依存関係をインストールします。
例えば、Cloudant ドライバー・ファイルとその依存関係を ${server.config.dir}/lib ディレクトリーに配置します。
- サーバー構成を更新して、リソース検索またはリソース・インジェクションを使用することによって ClientBuilder インスタンスまたは Database インスタンスをアプリケーションで使用可能にします。
具体的には、JNDI を使用して、server.xml ファイル内で cloudant-1.0 フィーチャーをフィーチャー・マネージャーに追加することによって、サーバー構成を更新できます。
<featureManager>
<feature>cloudant-1.0</feature>
<feature>jndi-1.0</feature>
</featureManager>
要確認: JNDI フィーチャーは、リソースの検索に JNDI を使用する場合にのみ必要です。
ただし、リソース・インジェクションを使用する場合、このフィーチャーは必須ではありません。
- Liberty サーバーの server.xml ファイル内で、Cloudant ドライバー・ファイル用の共有ライブラリーを構成します。
<library id="cloudantLib">
<fileset dir="${shared.resource.dir}cloudant" includes="cloudant-client-2.2.0.jar commons-codec-1.6.jar commons-io-2.4.jar gson-2.2.4.jar"/>
</library>
アプリケーションで使用する API によっては、追加のライブラリーが必要になることがあります。詳しくは、Cloudant Java クライアントの資料を参照してください。
- これまでのステップで作成した共有ライブラリーおよびデフォルト・コンテナー認証別名を参照する cloudant エレメントを構成します。
ローカル・データベースまたはリモート・データベースの URL を指定することも、Cloudant の Database as a Service (DBaaS) アカウントを指定することもできます。両方は指定しないでください。
- 次の例では、データベースの URL を指定しています。
<cloudant id="myCloudant" libraryRef="cloudantLib" url="http://example.com:5984" username="your_cloudant_username" password="your_cloudant_password"/>
- 次の例では、アカウントを指定しています。
<cloudant id="myCloudant" libraryRef="cloudantLib" account="account_name" username="your_cloudant_username" password="your_cloudant_password" />
ヒント: JNDI 名を構成することで、アプリケーションが ClientBuilder インスタンスを検索できるようになります。
- ステップ 4 で構成した cloudant エレメントを参照する cloudantDatabase エレメントを構成することもできます。 この構成によって、アプリケーションは com.cloudant.client.api.Database オブジェクトを直接注入または検索できるようになります。このセットアップが有益なのは、データベース名がサーバー構成に保管されるため、アプリケーションがデータベースの名前を認識する必要がないからです。さらに、Liberty サーバーが作成する cloudant 接続マネージャーのライフサイクルは Liberty サーバーが管理します。
<cloudantDatabase jndiName="cloudant/mydb" databaseName="mydb" create="true" cloudantRef="myCloudant"/>
- アプリケーションが Database Cloudant リソースにアクセスできるようにします。
ステップ 5 で cloudantDatabase 構成エレメントを使用して構成された Database を注入または検索します。
Database を直接注入する場合、アプリケーションがデータベースの名前を認識する必要はなく、接続マネージャーのライフサイクルを管理する必要もないことに注意してください。
@Resource(lookup="cloudant/mydb")
com.cloudant.client.api.Database db;
- ステップ 3 で構成した Cloudant ライブラリーへの参照を使用してアプリケーションを構成して、アプリケーションが cloudant クラスを使用できるようにします。
<application ...>
<classloader commonLibraryRef="cloudantLib"/>
</application>
次のタスク
アプリケーション用に Cloudant 接続を構成した後、アプリケーションから CouchDB をテストします。