Configuración de la conectividad CouchDB mediante el uso de la biblioteca de cliente de escritorio en Liberty

Las aplicaciones que se ejecutan en Liberty pueden utilizar CouchDB. Para acceder a una instancia de CouchDB, las aplicaciones pueden configurar un conector para la base de datos NoSQL utilizando la biblioteca del cliente ektorp.

Antes de empezar

Liberty proporciona soporte de configuración para CouchDB. CouchDB es una base de datos NoSQL escalable, de código abierto y alto rendimiento.

Debe utilizar la versión 1.4.1 o posterior del controlador Jave ektorp. Utilice el plug-in Maven para obtener el controlador de ektorp y sus dependencias.

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

Acerca de esta tarea

Para permitir a una aplicación utilizar CouchDB, debe configurar una biblioteca compartida para el controlador Java CouchDB y una referencia de biblioteca a la biblioteca compartida en el archivo server.xml. Una aplicación puede acceder a CouchDB directamente desde la aplicación o a través de la característica couchdb-1.0 y las configuraciones de instancia de CouchDB en el archivo server.xml.

Procedimiento

  1. Instale el controlador Java CouchDB en una ubicación a la que puedan acceder la aplicación y el tiempo de ejecución de Liberty.

    Por ejemplo, coloque el archivo de controlador de ektorp y sus dependencias en el directorio Liberty_profile_root/usr/servers/server_name/lib.

  2. Configure una biblioteca compartida para los archivos de controlador ektorp en el archivo server.xml.
    <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. Habilite la aplicación para acceder a CouchDB, ya sea mediante acceso directo desde la aplicación o utilizando la característica couchdb-1.0.
    • Habilitar el acceso directo a CouchDB desde la aplicación.
      1. Configure una referencia de biblioteca para la biblioteca compartida en un elemento de aplicación en el archivo server.xml.
        <application ...>
           <classloader commonLibraryRef="couchdb-lib"/>
        </application>
        La aplicación ahora puede acceder a las API de CouchDB directamente. Si desea que la aplicación utilice el motor de inyección de tiempo de ejecución, continúe con los pasos siguientes.
    • Configure la característica couchdb-1.0 y los elementos couchdb en el archivo server.xml.
      1. Añada la característica couchdb-1.0 al archivo server.xml.
        <featureManager>
           <feature>couchdb-1.0</feature>
           <feature>jndi-1.0</feature>
        </featureManager>
        La característica JNDI solo es necesaria cuando se utiliza JNDI para consultar recursos. Esta característica es necesaria si utiliza la inyección de recursos.
      2. Configure un elemento couchdb que tiene una referencia a la biblioteca compartida creada en un paso anterior.
        <couchdb id="couchdb" jndiName="couchdb/connector"
              libraryRef="couchdb-lib" url="http://example.com:5984" username="username"
              password="password"/>

        La configuración de un nombre JNDI permite a una aplicación o al tiempo de ejecución de Liberty buscar la instancia de CouchDB.

      3. Habilite la aplicación para acceder a CouchDB.

        El ejemplo siguiente muestra la búsqueda JNDI y la inyección de recursos:

        public class TestServlet extends HttpServlet {
              @Resource(name = "couchdb/connector")
              protected CouchDbInstance db;
              ...
           protected void doGet(HttpServletRequest request,
                 HttpServletResponse response) throws ServletException, IOException {
           // O bien utilice la búsqueda InitialContext
              CouchDbInstance lookup = (CouchDbInstance) new 
        InitialContext().lookup("java:comp/env/couchdb/connector");
        ...
      4. Si utiliza la búsqueda JNDI, añada una referencia de entorno de recursos al archivo web.xml de la aplicación:
        <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>
      Puede utilizar la característica couchdb-1.0 para configurar una conexión con un servicio Cloudant en línea. Especifique el URL, el ID de usuario y la contraseña de la cuenta Cloudant existente en el elemento de configuración couchdb. Por ejemplo:
      <couchdb id='couchdb' jndiName='couchdb/connector' libraryRef='couchdb-lib' url='https://mylink.cloudant.com/' username='myusername' password='mypassword'/> 
      Consulte la documentación de Liberty: Los límites de la protección mediante el cifrado de contraseña para obtener más información sobre cómo proteger las contraseñas en los archivos de configuración.

Qué hacer a continuación

Ahora que la aplicación se ha configurado para utilizar CouchDB, está preparado para probar el uso de CouchDB desde la aplicación.


Icono que indica el tipo de tema Tema de tarea

Nombre de archivo: twlp_couchdb_create.html