Exécution d'applications client léger Java
Vous pouvez exécuter des applications client léger Java™ sur des ordinateurs où réside une installation de WebSphere Application Client ou une installation de WebSphere Application Server.
Pourquoi et quand exécuter cette tâche
Important : Les clients légers Java ne fournissent pas de classes de fournisseur JDBC. Par exemple, le client léger Java de WebSphere Application Server
Version 8.5 ne contient pas les classes
Apache Derby 10.2. Par conséquent, pour utiliser les classes defournisseur JDBC (Apache
Derby, Oracle, DB2, Informix,
ou Sybase) sur un client léger Java, vous devez :
La procédure d'appel Java pour exécuter une application client léger Java est différente pour un
client et un serveur. Si l'application client léger Java doit s'exécuter sur le client et le serveur, suivez les
étapes indiquées dans la rubrique Exécution d'une application client léger Java sur un poste serveur.- Ajouter les classes requises à l'environnement de votre client léger Java.
- Rendre les classes visibles par le client léger Java. Pour ce faire, ajoutez le chemin d'accès aux classes dans le chemin d'accès aux classes du client dans script ayant lancé le programme client.
Procédure
- Exécution d'une application de client léger Java sur un poste client
- Exécution d'une application de client léger Java sur un poste serveur
Exemple
Votre client d'application léger
Java n'a plus besoin de code
supplémentaire pour définir les fournisseurs de sécurité si vous avez activé la sécurité de votre instance de
WebSphere Application Server. Ce code, qui se trouve dans les clients légers IBM® i
Java, doit être supprimé pour éviter les problèmes de migration et de compatibilité. Le fichier java.security de votre instance de WebSphere, situé dans le répertoire de propriétés, sert désormais à configurer les fournisseurs de sécurité.
Exécution du client léger avec la sécurité activée activée. Les exemples de code suivants montrent comment les fournisseurs sont définis par programme dans la méthode
main() et exécutés avant le code qui accède aux beans enterprise :
import java.security.*;
...
if (System.getProperty("os.name").equals("OS/400")) {
// Set the default provider list first.
Provider jceProv = null;
Provider jsseProv = null;
Provider sunProv = null;
// Allow for when the Provider is not needed, when
// it is not in the client application's classpath.
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.");
}
// Enable providers early and ahead of other providers
// for consistent performance and function.
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);
}
// Adjust default ordering based on admin/startstd properties file.
// Maximum allowed in property file is 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 adds to end of existing list
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")
For
examples of Java thin client applications, refer to Samples,
Version 8.5.