Les applications qui s'exécutent sous Liberty peuvent utiliser CouchDB. Pour l'accès à une instance CouchDB, les applications peuvent configurer un connecteur pour la base de données
NoSQL à l'aide de la bibliothèque client ektorp.
Avant de commencer
Liberty fournit une prise en charge de la configuration pour CouchDB. CouchDB est une base de données NoSQL en
open source, hautes performances et évolutive.
Vous devez utiliser la version 1.4.1 ou une version ultérieure du pilote Java ektorp. Utilisez le
plug-in Maven pour obtenir le pilote ektorp et ses dépendances.
<dependency>
<groupId>org.ektorp</groupId>
<artifactId>org.ektorp</artifactId>
<version>1.4.1</version>
</dependency>
Pourquoi et quand exécuter cette tâche
Pour permettre à une application d'utiliser CouchDB, vous devez configurer une bibliothèque partagée pour le pilote Java CouchDB et une référence de bibliothèque pour
la bibliothèque partagée dans le fichier server.xml. Une application peut accéder à CouchDB soit
directement depuis l'application, ou via la fonction
couchdb-1.0 et des configurations d'instance CouchDB
dans le fichier server.xml.
Procédure
- Installez le pilote Java CouchDB dans un emplacement auquel votre application et l'environnement d'exécution Liberty peuvent accéder.
Par exemple, placez le fichier de pilote ektorp
et ses dépendances dans le répertoire
Liberty_profile_root/usr/servers/server_name/lib.
- Configurez une bibliothèque partagée pour les fichiers du pilote ektorp dans le fichier 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>
- Autorisez votre application à accéder à CouchDB directement ou
via la fonction couchdb-1.0.
- Activez l'accès direct à CouchDB depuis l'application.
- Configurez une référence de bibliothèque pour la bibliothèque
partagée dans un élément d'application du fichier
server.xml.
<application ...>
<classloader commonLibraryRef="couchdb-lib"/>
</application>
Désormais, l'application peut accéder
aux API CouchDB directement. Si vous voulez que l'application utilise
le moteur d'injection de l'environnement d'exécution, effectuez les
étapes ci-après.
- Configurez la fonction
couchdb-1.0, ainsi que les éléments
couchdb dans le fichier server.xml.
- Ajoutez la fonction couchdb-1.0 au
fichier
server.xml.
<featureManager>
<feature>couchdb-1.0</feature>
<feature>jndi-1.0</feature>
</featureManager>
La fonction JNDI n'est
requise
que si vous utilisez JNDI afin de consulter des ressources. Cette
fonction n'est pas nécessaire si vous utilisez l'injection de ressource.
- Configurez un élément couchdb qui référence la bibliothèque
partagée créée précédemment.
<couchdb id="couchdb" jndiName="couchdb/connector"
libraryRef="couchdb-lib" url="http://example.com:5984" username="username"
password="password"/>
La configuration d'un
nom JNDI permet à une application ou à l'environnement d'exécution
Liberty de rechercher une instance MongoDB.
- Activez votre application en vue de l'accès à CouchDB.
L'exemple suivant illustre une recherche JNDI et une injection de ressource :
public class TestServlet extends HttpServlet {
@Resource(name = "couchdb/connector")
protected CouchDbInstance db;
...
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// Alternatively use InitialContext lookup
CouchDbInstance lookup = (CouchDbInstance) new
InitialContext().lookup("java:comp/env/couchdb/connector");
...
- Si vous utilisez la recherche JNDI, ajoutez une référence d'environnement de ressource au fichier web.xml de votre application :
<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>
Vous pouvez
utiliser la fonction
couchdb-1.0 pour configurer
une connexion à un service
Cloudant en ligne. Indiquez l'URL, l'ID utilisateur et le mot de passe de votre
compte Cloudant
existant dans l'élément de configuration
couchdb. Exemple :
<couchdb id='couchdb' jndiName='couchdb/connector' libraryRef='couchdb-lib' url='https://mylink.cloudant.com/' username='myusername' password='mypassword'/>
Pour en savoir plus sur la sécurisation des mots de passe dans les
fichiers de configuration, voir
Liberty : Limites de la protection via le chiffrement de mot de passe.
Que faire ensuite
Maintenant que votre application est configurée pour utiliser CouchDB, vous êtes prêt à tester l'utilisation de CouchDB à partir de votre application.