Sie können die erweiterten Funktionen des Cloudant-Java-Clients in Liberty verwenden.
Informationen zu diesem Vorgang
Als Benutzer des Cloudant-Java-Clients können Sie Ihren Server mit aktivierter Java 2-Sicherheit
ausführen oder Authentifizierungsaliasse auf Ressourcenreferenzen anwenden. Alternativ können Sie den Cloudant-Java-Client
ohne WebSphere-Integrationsfeatures verwenden. Die folgenden Schritte können unabhängig voneinander ausgeführt werden.
Vorgehensweise
- Wenn Ihr Server mit aktivierter Java 2-Sicherheit ausgeführt wird, müssen der
cloudant-Clientbibliothek Berechtigungen erteilt werden.
Sie können in der Datei server.xml beispielsweise Folgendes angeben:
<javaPermission codebase="${shared.resource.dir}cloudant/cloudant-client-2.2.0.jar" className="java.security.AllPermission"/>
- Erstellen Sie ein Element für den Standardcontainerauthentifizierungsalias in der Datei server.xml, um einen Benutzernamen und ein Kennwort für die
Authentifizierung bei der Datenbank anzugeben.
<cloudant ... containerAuthDataRef="cadr"/>
<authData id="cadr" user="Benutzername" password="Kennwort"/>
Tipp: Anstatt einen Standardcontainerauthentifizierungsalias anzugeben, können Sie die Benutzernamens- und Kennwortattribute
des
cloudant-Elements verwenden.
Weitere Informationen zum Schutz von Kennwörtern in Konfigurationsdateien finden Sie unter
Liberty: Grenzen des Schutzes durch Kennwortverschlüsselung.
- Die Anwendung kann pro Ressourcenreferenz einen containergesteuerten Authentifizierungsalias in den Bindungen angeben.
Der als Authentifizierungsalias angegebene Wert muss die ID eines
authData-Elements in der Serverkonfiguration sein.
Sie können in der Datei ibm-web-bnd.xml beispielsweise Folgendes angeben:
<resource-ref name="java:module/env/cloudant/testDBRef" binding-name="cloudant/testDB">
<authentication-alias name="cadr"/>
</resource-ref>
- Wenn Sie nicht verwaltete Cloudant-Ressourcen in Ihrer Anwendung verwenden möchten, muss weder das
Feature cloudant-1.0 aktiviert werden, noch müssen der Datei server.xml
cloudant- und cloudantDatabase-Elemente hinzugefügt werden.
Bei der Verwendung nicht verwalteter Cloudant-Ressourcen können Sie die Cloudant-Bibliotheken direkt in die Anwendung packen oder Sie können eine
Bibliothek in der Datei server.xml konfigurieren:
<library name="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>
<application ...>
<classloader commonLibraryRef="cloudantLib"/>
</application>
- Wenn ein JNDI-Name in einem cloudant-Konfigurationselement angegeben wird, können Sie den
ClientBuilder einfügen oder suchen, den Sie mit dem Konfigurationselement cloudant
konfiguriert haben.
<cloudant id="builder" jndiName="cloudant/builder" ... />
Im Folgenden sehen Sie ein Beispiel für das Einfügen oder Suchen eines ClientBuilder, der mit dem
Konfigurationselement "cloudant" konfiguriert wurde:
import com.cloudant.client.api.*;
//...
@Resource(lookup="cloudant/builder", name="cloudant/resRef")
ClientBuilder builder;
public void useInjectedBuilder() {
CloudantClient client = builder.build();
Database db = client.database("somedb", true);
// Datenbank verwenden...
// Verbindungsmanager für diesen Client beenden, wenn Sie fertig sind
// Beachten, dass die CloudantClient-Instanz danach nicht mehr verwendbar ist
client.shutdown();
}
public void useBuilderLookup() throws NamingException {
ClientBuilder builder = (ClientBuilder) new InitialContext().lookup("java:comp/env/cloudant/resRef");
CloudantClient client = builder.build();
Database db = client.database("somedb",true);
// Datenbank verwenden...
// Verbindungsmanager für diesen Client beenden, wenn Sie fertig sind
// Beachten, dass die CloudantClient-Instanz danach nicht mehr verwendbar ist
client.shutdown();
}