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
- 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.
- 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>
- 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
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.