在 Liberty 中使用 Cloudant Java 客户机库来配置 CouchDB 连接

在 Liberty 上运行的应用程序可以访问 NoSQL 数据库,例如 CouchDB。要访问 Liberty 中的 CouchDB 实例,首选方法是使用 Cloudant Java 客户机来配置连接器。

开始之前

Liberty 支持配置 Cloudant Java 客户机,但不提供所需的库。必须使用 Cloudant Java 客户机 V2.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 允许应用程序执行创建、更新和修改操作。

要让应用程序插入 ClientBuilderDatabase 实例,必须在服务器配置中启用 cloudant-1.0 功能部件并配置 Cloudant 资源。Liberty 运行时将管理它用于创建 Database 实例的 CloudantClient 实例的生命周期。

过程

  1. 在应用程序和 Liberty 运行时可访问的位置安装 Cloudant Java 客户机库及其依赖项。

    例如,将 Cloudant 驱动程序文件及其依赖项放在 ${server.config.dir}/lib 目录中。

  2. 更新服务器配置,以使 ClientBuilderDatabase 实例可通过资源查找或资源注入用于应用程序。

    具体而言,可以通过在 server.xml 文件中将 cloudant-1.0 功能部件添加到功能部件管理器,使用 JNDI 更新服务器配置:

    <featureManager>
        <feature>cloudant-1.0</feature>
        <feature>jndi-1.0</feature>
    </featureManager>
    切记: 仅当您使用 JNDI 来查找资源时,才需要 JNDI 功能部件。但是,当您使用资源注入时,不需要此功能部件。
  3. 在 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 客户机文档

  4. 配置对先前步骤中创建的共享库和缺省容器认证别名进行引用的 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 实例。
  5. 您还可以配置对步骤 4 中所配置的 cloudant 元素进行引用的 cloudantDatabase 元素。 此配置使应用程序能够直接注入或查找 com.cloudant.client.api.Database 对象。这种设置的好处在于,应用程序不需要了解数据库名称,因为数据库名称存储在服务器配置中。另外,Liberty 服务器将管理它所创建的 cloudant 连接管理器的生命周期。
    <cloudantDatabase jndiName="cloudant/mydb" databaseName="mydb" create="true" cloudantRef="myCloudant"/>
  6. 使应用程序能访问 Database Cloudant 数据库资源。

    注入或查找步骤 5 中使用 cloudantDatabase 配置元素配置的 Database。请注意,直接注入 Database 时,应用程序不需要了解数据库名称或者管理连接管理器的生命周期。

    @Resource(lookup="cloudant/mydb")
    com.cloudant.client.api.Database db;
  7. 通过为应用程序配置对步骤 3 中配置的 Cloudant 库的引用,使应用程序能够使用 cloudant 类。
    <application ...>
        <classloader commonLibraryRef="cloudantLib"/>
    </application>

下一步做什么

为应用程序配置 Cloudant 连接后,请从应用程序中测试 CouchDB。


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



时间戳记图标 最近一次更新时间: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_couchdb_config
文件名:twlp_couchdb_config.html