Puede utilizar las prestaciones avanzadas del cliente
Cloudant Java en Liberty.
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
- 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"/>
- 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.
- 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>
- 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>
- 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();
}