Configuración de la conectividad CouchDB utilizando la biblioteca del cliente Cloudant Java en Liberty

Las aplicaciones que se ejecutan en Liberty pueden acceder a bases de datos NoSQL, como CouchDB. Para acceder a una instancia de CouchDB en Liberty, la forma preferida es configurar el conector utilizando el cliente Cloudant Java.

Antes de empezar

Liberty soporta la configuración del cliente Cloudant Java, pero no proporciona las bibliotecas necesarias. Debe utilizar la versión 2.2.0 o versiones posteriores del cliente Cloudant Java. Puede descargar las bibliotecas necesarias desde muchas fuentes como, por ejemplo, GitHub o el plug-in Maven Eclipse para obtener el cliente Cloudant Java y sus dependencias del modo siguiente:
<dependency>
   <groupId>com.cloudant</groupId>
   <artifactId>cloudant-client</artifactId>
   <version>2.2.0</version>
</dependency>

Acerca de esta tarea

Para permitir que una aplicación utilice la API de Cloudant Java, debe configurar los elementos siguientes en el archivo server.xml:
  • Una biblioteca compartida para el controlador y las bibliotecas de las que depende
  • Una referencia a la biblioteca compartida

A continuación, una aplicación podrá acceder directamente a la API de cliente sin ninguna configuración adicional del servidor. Si desea más información, consulte la documentación de Cloudant. ClientBuilder puede crear instancias de CloudantClient que pueden utilizarse después para buscar, crear vistas de base de datos y realizar otras tareas. Una Database permite a la aplicación realizar operaciones de creación, actualización y modificación.

Para que las aplicaciones inyecten una instancia de ClientBuilder o Database, debe habilitar la característica cloudant-1.0 y configurar los recursos de Cloudant en la configuración de servidor. El tiempo de ejecución de Liberty gestiona el ciclo de vida de instancias de CloudantClient qur utiliza para crear instancias de Database.

Procedimiento

  1. Instale la biblioteca del cliente Cloudant Java y sus dependencias donde pueden acceder la aplicación y el tiempo de ejecución de Liberty.

    Por ejemplo, coloque los archivos de controlador de Cloudant y sus dependencias en el directorio ${server.config.dir}/lib.

  2. Actualice la configuración de servidor para que una instancia de ClientBuilder o Database esté disponible para la aplicación por medio de búsquedas de recursos o inyecciones de recurso.

    Específicamente, puede utilizar JNDI para actualizar la configuración del servidor añadiendo la característica cloudant-1.0 al gestor de características en el archivo server.xml:

    <featureManager>
        <feature>cloudant-1.0</feature>
        <feature>jndi-1.0</feature>
    </featureManager>
    Recuerde: La característica JNDI es necesaria solo cuando se utiliza JNDI para buscar recursos. Sin embargo, esta característica no es necesaria cuando se utiliza una inyección de recursos.
  3. Configure una biblioteca compartida para los archivos de controlador Cloudant en el archivo server.xml del servidor Liberty:
    <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>

    Podrían ser necesarias bibliotecas adicionales en función de las API que utiliza la aplicación. Si desea más información, consulte la Documentación de cliente Cloudant Java.

  4. Configure un elemento cloudant que tenga referencias a la biblioteca compartida y el alias de autenticación de contenedor predeterminado que se crean en los pasos anteriores.
    Puede especificar el URL de la base de datos local o remota, o una cuenta para una base de datos como servicio (DBaaS) Cloudant. Recuerde especificarlas ambas.
    • El ejemplo siguiente especifica el URL de la base de datos:
      <cloudant id="myCloudant" libraryRef="cloudantLib" url="http://example.com:5984" username="your_cloudant_username" password="your_cloudant_password"/>
    • El ejemplo siguiente especifica la cuenta:
      <cloudant id="myCloudant" libraryRef="cloudantLib" account="account_name" username="your_cloudant_username" password="your_cloudant_password" />
    Consejo: la configuración de un nombre JNDI permite a una aplicación buscar la instancia de ClientBuilder.
  5. También puede configurar un elemento cloudantDatabase que haga referencia al elemento cloudant que ha configurado en el paso 4. Esta configuración permite que la aplicación inyecte o busque directamente un objeto com.cloudant.client.api.Database. Esta configuración es beneficiosa porque la aplicación no necesita saber el nombre de la base de datos, ya que éste está almacenado en la configuración del servidor. Además, el servidor Liberty gestiona el ciclo de vida de los gestores de conexiones cloudant que crea.
    <cloudantDatabase jndiName="cloudant/mydb" databaseName="mydb" create="true" cloudantRef="myCloudant"/>
  6. habilite la aplicación para acceder al recurso de Cloudant Database.

    Inyecte o busque la Base de datos que se ha configurado utilizando el elemento de configuración cloudantDatabase en el paso 5. Tenga en cuenta que, al inyectar una Base de datos directamente, la aplicación no necesita conocer el nombre de la base de datos ni gestionar el ciclo de vida del gestor de conexión.

    @Resource(lookup="cloudant/mydb")
    com.cloudant.client.api.Database db;
  7. Habilite la aplicación para utilizar clases cloudant configurándola con una referencia a la biblioteca de Cloudant configurada en el paso 3.
    <application ...>
        <classloader commonLibraryRef="cloudantLib"/>
    </application>

Qué hacer a continuación

Tras configurar la conectividad de Cloudant para la aplicación, pruebe CouchDB en su aplicación.


Icono que indica el tipo de tema Tema de tarea

Nombre de archivo: twlp_couchdb_config.html