Tema anterior: Parámetros de entradaTema siguiente: Código de Java en el operador Invocar Java


Código

List External Jar Paths? (¿Mostrar rutas de archivos JAR externos?)

Seleccione esta opción para proporcionar una lista de rutas de archivos JAR externos obligatorios en el campo Rutas de archivos JAR externos como una expresión.

Anule su selección para proporcionar las rutas de archivos JAR externos obligatorios como una expresión, es decir, como una variable del conjunto de datos en el campo External Jar Paths as Expression (Rutas de archivos JAR externos como una expresión).

Esta casilla de verificación está seleccionada de manera predeterminada.

External Jar Paths (Rutas de archivos JAR externos)

Especifica la lista de rutas de archivos JAR externos que requiere el código del método principal del operador, si existe.

El operador Invocar Java carga los archivos JAR que se incluyen en este campo. Cualquier archivo JAR introducido en esta lista está disponible para el código de Java ejecutado por el operador. Las clases definidas en los archivos JAR en el nivel de operador anulan las mismas clases especificadas en los archivos JAR en el nivel de categoría de operador.

Para cada ruta, puede hacer lo siguiente:

Los recursos de CA Process Automation, incluidos los de usuario, se reflejan en el intervalo de duplicación del agente. Verifique que los archivos JAR cargados en los recursos de usuario ya se reflejan antes de utilizarlos en el operador Invocar Java.

Archivos de clase

Además de archivos JAR externos, se podrían cargar archivos .class de la manera siguiente:

Si especifica la ruta a un directorio (para cargar archivos .class), escríbalo como una ruta completa. Se puede introducir también como ruta relativa a Recursos de usuario de CA Process Automation. No introduzca la ruta como una ruta de HTTP.

Especifique la ruta a un directorio para cargar archivos .class, no archivos JAR. A diferencia de los archivos .class, cada archivo JAR requiere una ruta independiente que termina con el archivo JAR (no el directorio donde reside).

Rutas de archivos JAR externos como una expresión

Especifica la variable del conjunto de datos de la cadena indexada que contiene la lista de rutas de archivos JAR externos que requiere el código del operador.

Introducir método principal obligatorio

Seleccione esta opción para proporcionar el código Java en el campo Método principal obligatorio.

Anule la selección para proporcionar el código Java como una variable del conjunto de datos en el campo Método principal obligatorio como una expresión.

Esta casilla de verificación está seleccionada de manera predeterminada.

Método principal obligatorio

Especifica el texto del código Java del método principal. Se puede explorar para encontrar cualquier archivo que contenga este código. El método principal consta de declaraciones Java normales y expresiones. Se deben iniciar y utilizar objetos definidos en el SDK de Java o los archivos JAR externos.

Nota: CA Process Automation analiza el código y comprueba su validación estructural cuando se hace clic en Aceptar. Un mensaje de error muestra si se produce un error en la estructura del código.

Consulte la sección Código de Java en el operador Invocar Java.

Método principal obligatorio como una expresión

Especifica la variable del conjunto de datos que incluye el contenido del método principal. El método principal consta de declaraciones Java normales y expresiones. Se deben iniciar y utilizar objetos definidos en el SDK de Java o los archivos JAR externos. No se realiza ninguna validación estructural.

Consulte la sección Código de Java en el operador Invocar Java.

¿Desea establecer un cargador de clases de contexto?

Establezca este campo (a un valor diferente del valor predeterminado) si el método principal o los archivos JAR externos utilizan el cargador de clases de contexto de Java para cargar las clases. Es necesario establecer el cargador de clases de contexto de Java en el cargador de clases de operadores o en el cargador de clases de módulos para evitar una excepción ClassCastException.

El operador Invocar Java utiliza una cadena de cargadores de clases para cargar clases mientras se ejecuta el código Java. Esta cadena se ha diseñado de la siguiente manera (entre otros cargadores de clases):

  1. Cargador de clases de operador: cargador de clases que carga las clases proporcionadas en el nivel del operador
  2. Cargador de clases de operador: cargador de clases que carga las clases proporcionadas en el nivel del módulo
  3. Cargador de clases de contexto
  4. Regular java Class.ForName

El operador consulta a cada cargador de clases antes de cambiar a lo siguiente (si no se encuentra la clase).

Esta cadena funciona mientras el código ejecutado no utilice explícitamente su propio cargador de clases para cargar una clase. En este caso se puede ver en los registros un 'ClassCastException'.

Ejemplo:

Tenga en cuenta que la clase MyChildXMLParser se extiende hasta la clase MyParentXMLParser. El fragmento de código enumerado siguiente crea un MyParentXMLParser mediante una fábrica de Java. Esta fábrica carga y crea un MyChildXMLParser, que se convierte después en un objeto de MyParentXMLParser:

public MyParentXMLParser() {
        super((MyParentXMLParser)ObjectFactory.createObject("com.ca.parser.MyChildXMLParser"));
          ....
     }

Tenga en cuenta el siguiente ejemplo:

Para resolver esta incidencia, establezca el campo Establecer un cargador de clases de contexto como una de las siguientes opciones:

Nota: "0 : Valor predeterminado" se utiliza en todos los otros casos donde el código de Java no carga explícitamente clases mediante su propio cargador de clases. Este valor es el valor predeterminado de este campo.

Si se establece el cargador de clases de contexto como cargador de clases del operador Invocar Java, se fuerza a las fábricas de Java a las que llama el código del usuario a utilizar el cargador de clases del operador Invocar Java. Esta acción elimina ClassCastException.