[16.0.0.3 and later]

Configuración de prestaciones avanzadas del controlador de Cloudant

Puede utilizar las prestaciones avanzadas del cliente Cloudant Java en Liberty.

Antes de empezar

Consulte el tema de configuración de Cloudant Configuración de la conectividad CouchDB utilizando la biblioteca del cliente Cloudant Java en Liberty y asegúrese de que los recursos necesarios del archivo server.xml estén configurados.

Acerca de esta tarea

Como usuario del cliente Java Cloudant, puede que desee ejecutar el servidor con la seguridad Java 2 habilitada o aplicar alias de autenticación a las referencias de recurso. También puede utilizar el cliente Java Cloudant sin características de integración de WebSphere. Los pasos siguientes pueden seguirse independientemente unos de otros.

Procedimiento

  1. Si el servidor se está ejecutando con la seguridad Java 2 habilitada, deben otorgarse permisos a la biblioteca de cliente cloudant.

    Por ejemplo, en server.xml, puede especificar:

    <javaPermission codebase="${shared.resource.dir}cloudant/cloudant-client-2.2.0.jar" className="java.security.AllPermission"/>
  2. Cree un elemento de alias de autenticación de contenedor predeterminado en el archivo server.xml para proporcionar un nombre de usuario y una contraseña que se utilizarán para autenticarse con la base de datos.
    <cloudant ... containerAuthDataRef="cadr"/>
    <authData id="cadr" user="nombre_usuario"
    password="contraseña"/>
    Consejo: En lugar de especificar un alias de autenticación de contenedor predeterminado, puede utilizar los atributos de nombre de usuario y contraseña del elemento cloudant. Para obtener más información, consulte Liberty: Los límites en la protección a través del cifrado de contraseñas para obtener más información sobre cómo proteger las contraseñas en archivos de configuración.
  3. La aplicación puede especificar un alias de autenticación gestionado por contenedor por referencia de recursos en los enlaces. El valor especificado como alias de autenticación debe ser el ID de un elemento authData de la configuración de servidor.

    Por ejemplo, en ibm-web-bnd.xml, puede especificar:

    <resource-ref
    name="java:module/env/cloudant/testDBRef" binding-name="cloudant/testDB">
      <authentication-alias name="cadr"/> 
    </resource-ref>
  4. Si desea utilizar recursos de Cloudant no gestionados en la aplicación, no es necesario que la característica cloudant-1.0 esté habilitada, ni tampoco añadir ningún elemento cloudant o cloudantDatabase a server.xml.

    Al utilizar Cloudant sin gestionar, las bibliotecas de Cloudant pueden empaquetarse directamente en la aplicación o puede configurarse una biblioteca en el archivo server.xml:

    <library name="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>
    <application ...> 
     <classloader commonLibraryRef="cloudantLib"/>
    </application>
  5. Si se especifica un nombre JNDI en un elemento de configuración cloudant, puede inyectar o buscar el ClientBuilder que ha configurado mediante el elemento de configuración cloudant.
    <cloudant id="builder" jndiName="cloudant/builder" ... />

    Ejemplo de inyección o búsqueda de un ClientBuilder configurado mediante el elemento de configuración cloudant.

    import com.cloudant.client.api.*; 
    //...
             
    @Resource(lookup="cloudant/builder", name="cloudant/resRef")
    ClientBuilder builder; 
    
    public void useInjectedBuilder() {       
        CloudantClient client = builder.build(); 
        Database db = client.database("somedb", true);
        // utilizar la bd ... 
        // Concluya el gestor de conexiones para este cliente cuando haya terminado 
        // tenga en cuenta que esto convierte a la instancia de CloudantClient en inutilizable a partir de este punto       
        client.shutdown(); 
    } 
    
    public void useBuilderLookup() throws NamingException { 
        ClientBuilder builder = (ClientBuilder) new InitialContext().lookup("java:comp/env/cloudant/resRef");  
        CloudantClient client = builder.build();
        Database db = client.database("somedb",true);
        // utilizar la bd ... 
        // Concluya el gestor de conexiones para este cliente cuando haya terminado
        // tenga en cuenta que esto convierte a la instancia de CloudantClient en inutilizable a partir de este punto       
        client.shutdown(); 
    }

Icono que indica el tipo de tema Tema de tarea

Nombre de archivo: twlp_couchdb_configdriver.html