Configuration de la connectivité CouchDB à l'aide de la bibliothèque client ektorp dans Liberty

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

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

  2. 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>
  3. Autorisez votre application à accéder à CouchDB directement ou via la fonction couchdb-1.0.
    • Activez l'accès direct à CouchDB depuis l'application.
      1. 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.
      1. 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.
      2. 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.

      3. 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");
        ...
      4. 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: Les 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.


Icône indiquant le type de rubrique Rubrique Tâche

Nom du fichier : twlp_couchdb_create.html