CouchDB-Konnektivität mit der Cloudant-Java-Clientbibliothek in Liberty konfigurieren

In Liberty ausgeführte Anwendungen können auf NoSQL-Datenbanken wie CouchDB zugreifen. Für den Zugriff auf eine CouchDB-Instanz in Liberty empfiehlt es sich, den Connector über den Cloudant-Java-Client zu konfigurieren.

Vorbereitende Schritte

Liberty unterstützt die Konfiguration des Cloudant-Java-Clients, stellt aber die erforderlichen Bibliotheken nicht bereit. Sie müssen Version 2.2.0 oder höher des Cloudant-Java-Clients verwenden. Die erforderlichen Bibliotheken können von vielen Quellen heruntergeladen werden, wie z. B. GitHub oder Eclipse-Maven-Plug-in, um den Cloudant-Java-Client und dessen Abhängigkeiten wie folgt abzurufen:
<dependency>
   <groupId>com.cloudant</groupId>
   <artifactId>cloudant-client</artifactId>
   <version>2.2.0</version>
</dependency>

Informationen zu diesem Vorgang

Damit eine Anwendung die Cloudant-Java-Client-API verwenden kann, müssen Sie Folgendes in der Datei server.xml konfigurieren:
  • Gemeinsam genutzte Bibliothek für den Treiber und die Bibliotheken, von denen der Treiber abhängig ist
  • Referenz auf die gemeinsam genutzte Bibliothek

Eine Anwendung kann dann ohne weitere Konfiguration des Servers direkt auf die Client-API zugreifen. Weitere Informationen finden Sie in der Dokumentation von Cloudant. Der ClientBuilder kann CloudantClient-Instanzen erstellen, die dann zum Suchen, zum Erstellen von Datenbankansichten und zum Ausführen weiterer Tasks verwendet werden können. Eine Database-Instanz ermöglicht der Anwendung, Erstellungs-, Aktualisierungs- und Änderungsoperationen auszuführen.

Damit Anwendungen eine ClientBuilder- oder Database-Instanz einfügen können, müssen Sie das Feature cloudant-1.0 aktivieren und die Cloudant-Ressourcen in der Serverkonfiguration konfigurieren. Die Liberty-Laufzeitumgebung verwaltet den Lebenszyklus von CloudantClient-Instanzen, die sie für die Erstellung von Database-Instanzen verwendet.

Vorgehensweise

  1. Installieren Sie die Cloudant-Java-Clientbibliothek und alle Abhängigkeiten an einer Position, auf die Ihre Anwendung und die Liberty-Laufzeitumgebung zugreifen können.

    Speichern Sie die Cloudant-Treiberdateien und die Abhängigkeiten beispielsweise im Verzeichnis ${server.config.dir}/lib.

  2. Aktualisieren Sie die Serverkonfiguration, um eine ClientBuilder- oder Database-Instanz über Ressourcensuchen und Ressourceninjektionen für Ihre Anwendung verfügbar zu machen.

    Sie können JNDI für die Aktualisierung der Serverkonfiguration verwenden, indem Sie dem Feature-Manager in der Datei server.xml das Feature cloudant-1.0 hinzufügen:

    <featureManager>
        <feature>cloudant-1.0</feature>
        <feature>jndi-1.0</feature>
    </featureManager>
    Hinweis: Das JNDI-Feature ist nur erforderlich, wenn Sie JNDI für die Ressourcensuche verwenden. Es ist jedoch nicht erforderlich, wenn Sie eine Ressourceninjektion verwenden.
  3. Konfigurieren Sie eine gemeinsam genutzte Bibliothek für die Cloudant-Treiberdateien in der Datei server.xml des Liberty-Servers.
    <library id="cloudantLib">
      <fileset dir="${shared.resource.dir}cloudant" includes="cloudant-client-2.2.0.jar commons-codec-1.6.jar commons-io-2.4.jar gson-2.2.4.jar"/>
    </library>

    Je nach den APIs, die von Ihrer Anwendung verwendet werden, können weitere Bibliotheken erforderlich sein. Weitere Informationen finden Sie in der Dokumentation zum Cloudant-Java-Client.

  4. Konfigurieren Sie ein cloudant-Element mit Referenzen auf die gemeinsam genutzte Bibliothek und den Standardcontainerauthentifizierungsalias, die in den vorherigen Schritten erstellt wurden.
    Sie können die URL der lokalen oder fernen Datenbank oder ein Konto für eine Cloudant Database as a Service (DBaaS) angeben. Sie dürfen nicht beides angeben.
    • Im folgenden Beispiel wird die URL der Datenbank angegeben:
      <cloudant id="myCloudant" libraryRef="cloudantLib" url="http://example.com:5984" username="Ihr_Cloudant-Benutzername" password="Ihr_Cloudant-Kennwort"/>
    • Im folgenden Beispiel wird das Konto angegeben:
      <cloudant id="myCloudant" libraryRef="cloudantLib" account="Accountname" username="Ihr_Cloudant-Benutzername" password="Ihr_Cloudant-Kennwort" />
    Tipp: Wenn ein JNDI-Name konfiguriert wird, kann eine Anwendung nach der ClientBuilder-Instanz suchen.
  5. Sie können auch ein cloudantDatabase-Element konfigurieren, das auf das in Schritt 4 konfigurierte cloudant-Element verweist. Diese Konfiguration ermöglicht Ihrer Anwendung, ein com.cloudant.client.api.Database-Objekt direkt einzufügen oder zu suchen. Dieses Setup ist von Vorteil, weil die Anwendung den Namen der Datenbank nicht kennen muss, da der Datenbankname in der Serverkonfiguration gespeichert ist. Außerdem verwaltet Ihr Liberty-Server den Lebenszyklus der von ihm erstellten cloudant-Verbindungsmanager.
    <cloudantDatabase jndiName="cloudant/mydb" databaseName="mydb" create="true" cloudantRef="myCloudant"/>
  6. Ermöglichen Sie Ihrer Anwendung den Zugriff auf die Database-Cloudant-Ressource.

    Suchen Sie die mit dem Konfigurationselement cloudantDatabase in Schritt 5 konfigurierte Database-Instanz oder fügen Sie sie hinzu. Wenn Sie eine Database-Instanz direkt einfügen, muss die Anwendung weder den Namen der Datenbank kennen noch den Lebenszyklus des Verbindungsmanagers verwalten.

    @Resource(lookup="cloudant/mydb")
    com.cloudant.client.api.Database db;
  7. Ermöglichen Sie Ihrer Anwendung die Verwendung von cloudant-Klassen, indem Sie Ihre Anwendung mit einer Referenz auf die in Schritt 3 konfigurierte Cloudant-Bibliothek konfigurieren.
    <application ...>
        <classloader commonLibraryRef="cloudantLib"/>
    </application>

Nächste Schritte

Nachdem Sie die Cloudant-Konnektivität für Ihre Anwendung konfiguriert haben, testen Sie CouchDB über Ihre Anwendung.


Symbol das den Typ des Artikels anzeigt. Taskartikel

Dateiname: twlp_couchdb_config.html