Liberty 中,利用 ektorp 用戶端程式庫來配置 CouchDB 連線功能

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 實例配置來存取。

程序

  1. 將 CouchDB Java 驅動程式安裝在應用程式和 Liberty 執行時期能夠存取的位置中。

    比方說,將 ektorp 驅動程式檔案和其相依關係放在 Liberty_profile_root/usr/servers/server_name/lib 目錄中。

  2. 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>
  3. 讓您的應用程式能夠存取 CouchDB,可以從應用程式直接存取或使用 couchdb-1.0 特性來存取。
    • 讓應用程式能夠直接存取 CouchDB。
      1. server.xml 檔內的應用程式元素中,配置共用程式庫的程式庫參照。
        <application ...>
           <classloader commonLibraryRef="couchdb-lib"/>
        </application>
        應用程式現在可以直接存取 CouchDB API。如果您希望應用程式使用執行時期注入引擎,請繼續進行後續步驟。
    • server.xml 檔中,配置 couchdb-1.0 特性和 couchdb 元素。
      1. couchdb-1.0 特性新增到 server.xml 檔。
        <featureManager>
           <feature>couchdb-1.0</feature>
           <feature>jndi-1.0</feature>
        </featureManager>
        只有在您利用 JNDI 來查閱資源時,才需要 JNDI 特性。如果您使用資源注入,就不需要這個特性。
      2. 配置一個 couchdb 元素,以參照上一步驟所建立的共用程式庫。
        <couchdb id="couchdb" jndiName="couchdb/connector"
              libraryRef="couchdb-lib" url="http://example.com:5984" username="username"
              password="password"/>

        配置 JNDI 名稱,使應用程式或 Liberty 執行時期能夠查閱 CouchDB 實例。

      3. 讓您的應用程式能夠存取 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");
        ...
      4. 如果使用 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'/> 
      請參閱Liberty:密碼加密保護的限制的說明文件,以瞭解如何保護配置檔中的密碼。

下一步

現在,您的應用程式已配置成會使用 CouchDB,您可以準備從應用程式來測試能否使用 CouchDB。


指示主題類型的圖示 作業主題

檔名:twlp_couchdb_create.html