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.
- 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.
- 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.
- 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.
- 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.
- 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"/>
- 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;
- 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.