Java-Thin-Client-Anwendungen ausführen
Sie können Java™-Thin-Client-Anwendungen auf Maschinen ausführen, auf denen WebSphere Application Client oder WebSphere Application Server installiert ist.
Informationen zu diesem Vorgang
Wichtig: Java-Thin-Clients werden nicht mit JDBC-Providerklassen gepackt. Im Paket des
Java-Thin-Clients von WebSphere Application Server Version 8.5
sind beispielsweise keine Klassen für Apache Derby 10.2 enthalten.
Deshalb müssen Sie folgendermaßen vorgehen, wenn Sie die JDBC-Providerklassen
(z. B. Apache Derby, Oracle, DB2, Informix oder Sybase) in einem Java-Thin-Client verwenden möchten:
Der
Java-Aufruf für die Ausführung einer Java-Thin-Client-Anwendung ist für Clients und Server verschieden.
Wenn Ihre Java-Thin-Client-Anwendung
in einer Clientinstallation und einer Serverinstallation ausgeführt werden muss, führen Sie die Schritte im Artikel
"Java-Thin-Client-Anwendung auf einer Servermaschine ausführen" aus.- Fügen Sie Ihrer Java-Thin-Client-Anwendungsumgebung die Klassen hinzu.
- Machen Sie die Klassen für die Java-Thin-Client-Anwendung sichtbar. Hierfür müssen Sie den Pfad zu den Klassen zum Clientklassenpfad in dem Script hinzufügen, das das Clientprogramm startet.
Vorgehensweise
- Java-Thin-Client-Anwendung auf einer Clientmaschine ausführen
- Java-Thin-Client-Anwendung auf einer Servermaschine ausführen
Beispiel
Ihr Java Thin Application Client benötigt keinen zusätzlichen Code für die Definition von Sicherheitsprovidern mehr,
wenn Sie die Sicherheit für Ihre Instanz von WebSphere Application Server aktiviert haben.
Dieser Code muss im IBM® i
Java Thin Client
entfernt werden, um Migrations- und Kompatibilitätsprobleme zu vermeiden.
Für die Konfiguration der Sicherheitsprovider wird jetzt die Datei "java.security" im Verzeichnis "properties" aus Ihrer WebSphere-Instanz verwendet.
Thin Client mit aktivierter Sicherheit ausführen. Die
folgenden Codebeispiele veranschaulichen, wie Sicherheitsprovider über das Programm in der Methode main()
vor allen Codeabschnitten, die auf Enterprise-Beans zugreifen, definiert werden:
import java.security.*;
...
if (System.getProperty("os.name").equals("OS/400")) {
// Zuerst die Liste der Standardprovider festlegen.
Provider jceProv = null;
Provider jsseProv = null;
Provider sunProv = null;
// Fall berücksichtigen, dass der Provider nicht benötigt wird,
// wenn er nicht im Klassenpfad der Clientanwendung enthalten ist
try {
jceProv = new com.ibm.crypto.provider.IBMJCE();
}
catch (Exception ex) {
ex.printStackTrace();
throw new Exception("Unable to acquire provider.");
}
try {
jsseProv = new com.ibm.jsse.JSSEProvider();
}
catch (Exception ex) {
ex.printStackTrace();
throw new Exception("Unable to acquire provider.");
}
try {
sunProv = new sun.security.provider.Sun();
}
catch (Exception ex) {
ex.printStackTrace();
throw new Exception("Unable to acquire provider.");
}
// Provider früh und vor anderen Providern aktivieren, um
// eine konsistente Leistung und Funktionalität zu gewährleisten
if ( (null != sunProv) && (1 != Security.insertProviderAt(sunProv, 1)) ) {
Security.removeProvider(sunProv.getName());
Security.insertProviderAt(sunProv, 1);
}
if ( (null != jceProv) && (2 != Security.insertProviderAt(jceProv, 2)) ) {
Security.removeProvider(jceProv.getName());
Security.insertProviderAt(jceProv, 2);
}
if ( (null != jsseProv) && (3 != Security.insertProviderAt(jsseProv, 3)) ) {
Security.removeProvider(jsseProv.getName());
Security.insertProviderAt(jsseProv, 3);
}
// Standardsortierung basierend auf admin/startstd-Eigenschaftendatei anpassen.
// Maximal zulässiger Wert in der Eigenschaftendatei ist 20.
String provName;
Class provClass;
Object provObj = null;
for (int i = 0; i < 21; i++) {
provName = System.getProperty("os400.security.provider."+ i);
if (null != provName) {
try {
provClass = Class.forName(provName);
provObj = provClass.newInstance();
}
catch (Exception ex) {
// provider not found
continue;
}
if (i != Security.insertProviderAt((Provider) provObj, i)) {
// Index 0 am Ende der vorhandenen Liste hinzufügen
if (i != 0) {
Security.removeProvider(((Provider) provObj).getName());
Security.insertProviderAt((Provider) provObj, i);
}
}
} // end if (null != provName)
} // end for (int i = 0; i < 21; i++)
} // end if ("os.name").equals("OS/400")
Beispiele für Java-Thin-Client-Anwendungen finden Sie unter den Beispielen für Version 8.5.