在 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 實例配置來存取。
程序
- 將 CouchDB Java 驅動程式安裝在應用程式和 Liberty 執行時期能夠存取的位置中。
舉例來說,將 ektorp 驅動程式檔案和其相依關係放在 Liberty_profile_root/usr/servers/server_name/lib 目錄中。
- 在 Liberty 伺服器的 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,可以從應用程式直接存取或使用 couchdb-1.0 特性來存取。
- 讓應用程式能夠直接存取 CouchDB。
- 在 server.xml 檔內的應用程式元素中,配置共用程式庫的程式庫參照。
<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 {
// 或者,也可以使用 InitialContext 查閱
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® 服務的連線。請在
couchdb 配置元素中,指定您現有 Cloudant 帳戶的 URL、使用者 ID 和密碼。例如:
<couchdb id='couchdb' jndiName='couchdb/connector' libraryRef='couchdb-lib' url='https://mylink.cloudant.com/' username='myusername' password='mypassword'/>
請參閱
密碼加密保護的限制的說明文件,以瞭解如何保護配置檔中的密碼。
下一步
現在,您已將應用程式配置成啟用 CouchDB,您可以準備從應用程式來測試能否使用 CouchDB。