Liberty で実行されるアプリケーションは、CouchDB を使用することができます。
CouchDB インスタンスにアクセスするために、アプリケーションは、ektorp クライアント・ライブラリーを使用して NoSQL データベース用のコネクターを構成できます。
始める前に
Liberty では、CouchDB の構成サポートを提供します。CouchDB は、拡張が容易で高性能なオープン・ソースの NoSQL データベースです。
必ず、バージョン 1.4.1 以降の ektorp Java ドライバーを使用してください。
Maven プラグインを使用して、ektorp ドライバーとその依存関係を取得します。
<dependency>
<groupId>org.ektorp</groupId>
<artifactId>org.ektorp</artifactId>
<version>1.4.1</version>
</dependency>
このタスクについて
アプリケーションが CouchDB を使用できるようにするには、server.xml ファイル内で CouchDB Java ドライバー用の共有ライブラリーと、その共有ライブラリーに対するライブラリー参照を構成する必要があります。アプリケーションが CouchDB にアクセスするには、アプリケーションから直接行うか、
server.xml ファイルの couchdb-1.0 フィーチャーと CouchDB インスタンスの構成を使用することができます。
手順
- アプリケーションおよび Liberty ランタイムがアクセスできるロケーションに、CouchDB Java ドライバーをインストールします。
例えば、Liberty_profile_root/usr/servers/server_name/lib ディレクトリーに ektorp ドライバー・ファイルとその依存関係を配置します。
- server.xml ファイル内で、ektorp ドライバー・ファイル用の共有ライブラリーを構成します。
<library id="couchdb-lib">
<fileset
dir='${server.config.dir}/lib'
includes='org.ektorp-1.4.1.jar
commons-codec-1.6.jar
commons-io-2.0.1.jar
commons-logging-1.1.1.jar
httpclient-4.2.5.jar
httpclient-cache-4.2.5.jar
httpcore-4.2.4.jar
jackson-annotations-2.2.2.jar
jackson-core-2.2.2.jar
jackson-databind-2.2.2.jar
slf4j-api-1.6.4.jar
slf4j-simple-1.6.4.jar'/>
</library>
- アプリケーションからの直接アクセス、または couchdb-1.0 フィーチャーの使用によって、アプリケーションが CouchDB にアクセスできるようにします。
- アプリケーションから CouchDB への直接アクセスを可能にします。
- server.xml ファイルの application エレメントで共有ライブラリーのライブラリー参照を構成します。
<application ...>
<classloader commonLibraryRef="couchdb-lib"/>
</application>
これで、アプリケーションは CouchDB API に直接アクセスできるようになります。アプリケーションがランタイム注入エンジンを使用するようにしたい場合は、続けて次のステップを実行してください。
- server.xml ファイル内で couchdb-1.0 フィーチャーと couchdb エレメントを構成します。
- couchdb-1.0 フィーチャーを server.xml ファイルに追加します。
<featureManager>
<feature>couchdb-1.0</feature>
<feature>jndi-1.0</feature>
</featureManager>
JNDI フィーチャーは、リソースの検索に JNDI を使用する場合のみ必要です。
リソース・インジェクションを使用する場合、このフィーチャーは不要です。
- 前のステップで作成された共有ライブラリーへの参照を持つ couchdb エレメントを構成します。
<couchdb id="couchdb" jndiName="couchdb/connector"
libraryRef="couchdb-lib" url="http://example.com:5984" username="username"
password="password"/>
JNDI 名を構成することで、アプリケーションまたは Liberty ランタイムが CouchDB インスタンスを検索できるようになります。
- アプリケーションが CouchDB にアクセスできるようにします。
以下の例は、JNDI 検索とリソース注入の両方を示しています。
public class TestServlet extends HttpServlet {
@Resource(name = "couchdb/connector")
protected CouchDbInstance db;
...
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// Alternatively use InitialContext lookup
CouchDbInstance lookup = (CouchDbInstance) new
InitialContext().lookup("java:comp/env/couchdb/connector");
...
- JNDI 検索を使用する場合は、
アプリケーションの web.xml ファイルにリソース環境参照を追加します。
<resource-env-ref>
<resource-env-ref-name>couchdb/connector</resource-env-ref-name>
<resource-env-ref-type>org.ektorp.CouchDbInstance</resource-env-ref-type>
</resource-env-ref>
couchdb-1.0 フィーチャーを使用して、
オンライン Cloudant® サービスへの接続を構成できます。
既存の Cloudant アカウントの URL、ユーザー ID、およびパスワードを、
couchdb 構成エレメントに指定します。以下に例を示します。
<couchdb id='couchdb' jndiName='couchdb/connector' libraryRef='couchdb-lib' url='https://mylink.cloudant.com/' username='myusername' password='mypassword'/>
構成ファイル内のパスワードを保護する方法については、
『
Liberty: パスワード暗号化による保護の制限』の資料を参照してください。
次のタスク
CouchDB を使用するためのアプリケーションの構成が完了し、アプリケーションからの CouchDB の使用をテストする準備ができました。