CouchDB-Konnektivität mit der ektorp-Clientbibliothek in Liberty konfigurieren

Anwendungen, die in Liberty ausgeführt werden, können CouchDB verwenden. Für den Zugriff auf eine CouchDB-Instanz können Anwendungen einen Connector für die NoSQL-Datenbank mit der Ektorp-Clientbibliothek konfigurieren.

Vorbereitende Schritte

Liberty stellt Konfigurationsunterstützung für CouchDB bereit. CouchDB ist eine skalierbare, leistungsfähige Open-Source-NoSQL-Datenbank.

Sie müssen Version 1.4.1 oder höher des ektorp-Java-Treibers verwenden. Verwenden Sie das Maven-Plug-in, um den ektorp-Treiber und seine Abhängigkeiten zu erhalten.

<dependency>
    <groupId>org.ektorp</groupId>
    <artifactId>org.ektorp</artifactId>
    <version>1.4.1</version>
</dependency>

Informationen zu diesem Vorgang

Damit eine Anwendung CouchDB verwenden kann, müssen Sie eine gemeinsam genutzte Bibliothek für den CouchDB-Java-Treiber und eine Bibliotheksreferenz auf die gemeinsam genutzte Bibliothek in der Datei server.xml konfigurieren. Eine Anwendung kann direkt über die Anwendung oder über das Feature couchdb-1.0 und CouchDB-Instanzkonfigurationen in der Datei server.xml auf CouchDB zugreifen.

Vorgehensweise

  1. Installieren Sie den CouchDB-Java-Treiber an einer Position, die für Ihre Anwendung und die Liberty-Laufzeit zugänglich ist.

    Stellen Sie die ektorp-Treiberdatei und ihre Abhängigkeiten in das Verzeichnis Liberty-Profilstammverzeichnis/usr/servers/Servername/lib.

  2. Konfigurieren Sie eine gemeinsam genutzte Bibliothek für die ektorp-Treiberdateien in der Datei 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. Aktivieren Sie den Anwendungszugriff auf CouchDB, entweder direkt über die Anwendung oder über das Feature couchdb-1.0.
    • Aktivieren Sie den direkten Zugriff auf CouchDB über die Anwendung.
      1. Konfigurieren Sie eine Bibliotheksreferenz für die gemeinsam genutzte Bibliothek in einem application-Element in der Datei server.xml.
        <application ...>
           <classloader commonLibraryRef="couchdb-lib"/>
        </application>
        Die Anwendung kann jetzt direkt auf die CouchDB-APIs zugreifen. Wenn Sie möchten, dass die Anwendung die Injektionsengine der Laufzeit verwendet, fahren Sie mit den nächsten Schritten fort.
    • Konfigurieren Sie das Feature couchdb-1.0 und die couchdb-Elemente in der Datei server.xml.
      1. Fügen Sie das Feature couchdb-1.0 der Datei server.xml hinzu.
        <featureManager>
           <feature>couchdb-1.0</feature>
           <feature>jndi-1.0</feature>
        </featureManager>
        Das JNDI-Feature ist nur erforderlich, wenn Sie JNDI für die Ressourcensuche verwenden. Es ist nicht erforderlich, wenn Sie mit Ressourceninjektion arbeiten.
      2. Konfigurieren Sie ein couchdb-Element, das einen Verweis auf die gemeinsam genutzte Bibliothek enthält, die Sie in einem vorherigen Schritt erstellt haben.
        <couchdb id="couchdb" jndiName="couchdb/connector"
              libraryRef="couchdb-lib" url="http://example.com:5984" username="username"
              password="password"/>

        Wenn ein JNDI-Name konfiguriert wird, kann eine Anwendung oder die Liberty-Laufzeit nach der CouchDB-Instanz suchen.

      3. Aktivieren Sie den Anwendungszugriff auf CouchDB.

        Das folgende Beispiel veranschaulicht sowohl die JNDI-Suche als auch die Ressourceninjektion:

        public class TestServlet extends HttpServlet {
              @Resource(name = "couchdb/connector")
              protected CouchDbInstance db;
              ...
           protected void doGet(HttpServletRequest request,
                 HttpServletResponse response) throws ServletException, IOException {
           // Alternativ InitialContext-Suche verwenden
              CouchDbInstance lookup = (CouchDbInstance) new 
        InitialContext().lookup("java:comp/env/couchdb/connector");
        ...
      4. Wenn Sie die JNDI-Suche verwenden, fügen Sie der Datei web.xml Ihrer Anwendung eine Ressourcenumgebungsreferenz hinzu:
        <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>
      Sie können das Feature couchdb-1.0 verwenden, um eine Verbindung zu einem Cloudant-Onlineservice zu konfigurieren. Geben Sie die URL, die Benutzer-ID und das Kennwort Ihres Cloudant-Accounts im couchdb-Konfigurationselement an. Beispiel:
      <couchdb id='couchdb' jndiName='couchdb/connector' libraryRef='couchdb-lib' url='https://mylink.cloudant.com/' username='myusername' password='mypassword'/> 
      In der Dokumentation zu Liberty: Grenzen des Schutzes durch Kennwortverschlüsselung wird beschrieben, wie Sie Kennwörter in Konfigurationsdateien sichern.

Nächste Schritte

Nachdem die Anwendung jetzt für die Verwendung von CouchDB konfiguriert ist, können Sie CouchDB über Ihre Anwendung testen.


Symbol das den Typ des Artikels anzeigt. Taskartikel

Dateiname: twlp_couchdb_create.html