在 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 {
           // 或者,也可以使用 InitialContext 查閱
              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。


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



「時間戳記」圖示 前次更新: 2016 年 11 月 30 日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_couchdb_create
檔名:twlp_couchdb_create.html