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
- 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.
- 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>
- 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.
- 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.
- 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.
- 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.
- 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");
...
- 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.