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:
  1. Fügen Sie Ihrer Java-Thin-Client-Anwendungsumgebung die Klassen hinzu.
  2. 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.
Wenn Sie diese Aktionen nicht ausführen, führt jeder Versuch, eine Datenbankklasse zu laden (z. B. durch eine JNDI-Lookup-Operation einer Datenquelle) zu einer Ausnahme des Typs "ClassNotFoundException".
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.

Vorgehensweise

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.

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tcli_runjavathin
Dateiname:tcli_runjavathin.html