Las aplicaciones que se ejecutan en Liberty puede utilizar CouchDB. Para acceder a una instancia de
CouchDB, las aplicaciones pueden configurar un conector para la base de datos
NoSQL con la biblioteca de 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 Java™ de 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 que una aplicación pueda utilizar CouchDB, debe configurar
una biblioteca compartida para el controlador Java de CouchDB y una referencia de
biblioteca a la biblioteca compartida en el archivo server.xml de Liberty. 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
- Instale el controlador Java de 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.
- Configurar una biblioteca compartida para los archivos de controlador de ektorp en
el archivo server.xml del servidor de Liberty.
<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>
- 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.
- 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.
- 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.
- 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.
- 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");
...
- 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
Los límites de 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 los archivos de configuración.
Qué hacer a continuación
Ahora que ha configurado la aplicación para habilitar el uso de
CouchDB, ya está preparado para probar el uso de CouchDB en su aplicación.