Ejecución de aplicaciones de cliente ligero Java
Puede ejecutar aplicaciones de cliente ligero Java™ en máquinas instalados con una instalación de WebSphere Application Client o una instalación de WebSphere Application Server.
Acerca de esta tarea
Importante: Los clientes ligeros
Java no están empaquetados con las clases
de proveedores de JDBC. Por ejemplo, el cliente ligero
Java de
WebSphere Application Server
versión 8.5 no está empaquetado con las clases de Apache Derby 10.2. Por lo tanto, para utilizar las clases del proveedor de JDBC
(como por ejemplo, Apache Derby, Oracle,
DB2,
Informix o Sybase) en un cliente
ligero Java, debe:
La invocación de Java para ejecutar una
aplicación de cliente ligero Java varía
entre un cliente y un servidor. Si la aplicación de cliente ligero
Java necesita ejecutarse en una
instalación de cliente y en una instalación de servidor, siga los pasos
descritos en el tema Ejecución de una
aplicación de cliente ligero Java en una
máquina servidor.- Añadir las clases al entorno de aplicación de cliente ligero Java.
- Hacer las clases visibles a la aplicación de cliente ligero Java. Para ello, añada la vía de acceso a las clases en la classpath del cliente ligero contenida en el script que ha iniciado e programa del cliente.
Procedimiento
- Ejecución de una aplicación de cliente ligero Java en una máquina de cliente
- Ejecución de una aplicación de cliente ligero Java en una máquina servidor
Ejemplo
El cliente ligero de aplicaciones Java ya no necesita código adicional para establecer los proveedores de seguridad si ha habilitado la seguridad para la instancia de WebSphere Application Server. Este código que se encuentra en los clientes ligeros de IBM® i
Java se debe suprimir para que no se produzcan problemas de migración y compatibilidad. El archivo java.security de la instancia de WebSphere del directorio de propiedades se utiliza ahora para configurar los proveedores de seguridad.
Ejecución del cliente ligero con la seguridad habilitada. En los ejemplos de código siguientes se muestra cómo los proveedores de seguridad se han establecido mediante programación en el métodos main(), y han tenido lugar antes de cualquier código que haya accedido a los enterprise beans:
import java.security.*;
...
if (System.getProperty("os.name").equals("OS/400")) {
// Establecer la lista de proveedores predeterminada en primer lugar.
Provider jceProv = null;
Provider jsseProv = null;
Provider sunProv = null;
// tener en cuenta los casos en los que no se necesita el proveedor,
// cuando no está en la classpath del cliente de aplicaciones.
try {
jceProv = new com.ibm.crypto.provider.IBMJCE();
}
catch(Exception ex) {
ex.printStackTrace();
throw new Exception("No se ha podido adquirir el proveedor.");
}
try {
jsseProv = new com.ibm.jsse.JSSEProvider();
}
catch(Exception ex) {
ex.printStackTrace();
throw new Exception("No se ha podido adquirir el proveedor.");
}
try {
sunProv = new sun.security.provider.Sun();
}
catch(Exception ex) {
ex.printStackTrace();
throw new Exception("No se ha podido adquirir el proveedor.");
}
// Permitir proveedores con anticipación a otros proveedores
// para que el rendimiento y la función sean coherentes.
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);
}
// Ajustar el orden predeterminado en base al archivo de propiedades admin/startstd.
// El número máximo permitido en el archivo de propiedades es de 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) {
// no se ha encontrado el proveedor
continue;
}
if (i != Security.insertProviderAt((Provider) provObj, i)) {
// el índice 0 se añade al final de la lista existente
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")
Para obtener ejemplos de las aplicaciones de cliente ligero Java,
consulte Samples versión 8.5.