[8.5.5.4 或更高版本]

创建使用 CouchDB 的 Liberty 应用程序

使用 CouchDB 的应用程序可在 Liberty 概要文件上运行。要访问 CouchDB 实例,应用程序应使用 ektorp Java™ API 及针对 NoSQL 数据库配置的连接实例。

开始之前

Liberty 概要文件提供对 CouchDB 的配置支持。CouchDB 是可缩放的高性能开放式源代码 NoSQL 数据库。

必须使用 ektorp Java 驱动程序 V1.4.1 或更高版本。使用 Maven 插件以获取 ektorp 驱动程序及其依赖性。

<dependency>
    <groupId>org.ektorp</groupId>
    <artifactId>org.ektorp</artifactId>
    <version>1.4.1</version>
</dependency>

关于此任务

为允许应用程序使用 CouchDB,必须为 CouchDB Java 驱动程序配置共享库,并在 Liberty 概要文件的 server.xml 文件中配置对共享库的库引用。应用程序可以直接从应用程序或通过 server.xml 文件中的 couchdb-1.0 功能部件和 CouchDB 实例配置来访问 CouchDB。

过程

  1. 在应用程序和 Liberty 运行时可访问的位置安装 CouchDB Java 驱动程序。

    例如,将 ektorp 驱动程序文件及其依赖性放置在 Liberty_profile_root/usr/servers/server_name/lib 目录中。

  2. 在 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>
  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、用户标识和密码。例如:
      <couchdb id='couchdb' jndiName='couchdb/connector' libraryRef='couchdb-lib' url='https://mylink.cloudant.com/' username='myusername' password='mypassword'/> 
      请参阅 通过密码加密进行保护时存在的限制 的文档以了解如何保护配置文件中的密码。

下一步做什么

现在,您已配置应用程序以允许使用 CouchDB,您已准备好测试从应用程序使用 CouchDB。


用于指示主题类型的图标 任务主题

信息中心的条款和条件 | 反馈


时间戳记图标 最近一次更新时间: Wednesday, 2 September 2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_couchdb_create
文件名:twlp_couchdb_create.html