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。


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

文件名:twlp_couchdb_config.html