在 Liberty 中執行的應用程式可以存取 NoSQL 資料庫,例如 CouchDB。如果要存取 Liberty 中的 CouchDB 實例,建議的方式是利用 Cloudant Java 用戶端來配置連接器。
開始之前
Liberty 支援配置 Cloudant Java 用戶端,但不會提供必要的程式庫。您必須使用 Cloudant Java 用戶端 2.2.0 版或更新版本。您可以依如下所示,從多方來源(例如 GitHub 或 Eclipse Maven 外掛程式)
下載必要的程式庫,來取得 Cloudant Java 用戶端和其相依關係:
<dependency>
<groupId>com.cloudant</groupId>
<artifactId>cloudant-client</artifactId>
<version>2.2.0</version>
</dependency>
關於這項作業
如果要讓應用程式能夠使用 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 資料庫即服務 (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 實例。
- 您也可以配置一個 cloudantDatabase 元素來參照步驟 4 所配置的 cloudant 元素。 這個配置可讓您的應用程式直接注入或查閱 com.cloudant.client.api.Database 物件。
這個設定很有用,因為資料庫名稱儲存在伺服器配置中,因而應用程式不需要知道資料庫的名稱。
此外,您的 Liberty 伺服器也會管理它建立的 cloudant 連線管理程式的生命週期。
<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。