Vorheriges Thema: EingabeparameterNächstes Thema: Java-Code im Operator "Java aufrufen"


Code

Externe JAR-Dateipfade auflisten?

Wählen Sie diese Option aus, um eine Liste der Pfade zu den erforderlichen externen JAR-Dateien im Feld "Externe JAR-Dateipfade als Ausdruck" anzugeben.

Deaktivieren Sie diese Option, um die Pfade zu den erforderlichen externen JAR-Dateien als Ausdruck anzugeben, d. h. als Datensatzvariable im Feld "Externe JAR-Dateipfade als Ausdruck".

Dieses Kontrollkästchen ist standardmäßig aktiviert.

Externe JAR-Dateipfade

Gibt die Liste der Pfade für die externen JAR-Dateien an, die vom Code der Hauptmethode des Operators (sofern vorhanden) benötigt wird.

Der Operator "Java aufrufen" lädt die JAR-Dateien, die in diesem Feld aufgelistet sind. Alle in diese Liste eingegebenen JAR-Dateien sind für den Java-Code verfügbar, der von diesem Operator ausgeführt wird. Die Klassen, die in den JAR-Dateien auf Operatorebene definiert sind, überschreiben die gleichen Klassen, die in den JAR-Dateien auf Ebene der Operatorkategorie angegeben sind.

Für jeden Pfad gibt es folgende Möglichkeiten:

Ressourcen innerhalb von CA Process Automation, einschließlich der Anwenderressourcen, werden innerhalb des Spiegelungsintervalls des Agenten gespiegelt. Stellen Sie sicher, dass die JAR-Dateien, die in den Anwenderressourcen hochgeladen wurden, bereits gespiegelt sind, bevor sie im Operator "Java aufrufen" verwendet werden.

class-Dateien

Zusätzlich zu externen JAR-Dateien, können Sie folgendermaßen .class-Dateien laden:

Wenn Sie den Pfad in ein Verzeichnis angeben (um .class-Dateien zu laden), geben Sie ihn als vollständigen Pfad ein. Sie können ihn auch als relativen Pfad zu CA Process Automation-Anwenderressourcen eingeben. Geben Sie den Pfad nicht als HTTP-Pfad ein.

Geben Sie den Pfad in ein Verzeichnis an, um .class-Dateien und keine JAR-Dateien zu laden. Im Gegensatz zu .class-Dateien, benötigt jede JAR-Datei einen separaten Pfad, der mit der JAR-Datei endet (nicht mit dem Verzeichnis, in dem sie sich befindet).

Externe JAR-Dateipfade als Ausdruck

Gibt die Datensatzvariable der indizierten Zeichenfolgen an, die die Liste der Pfade zu den externen JAR-Dateien enthält, die der Code der Hauptmethode des Operators benötigt.

Erforderliche Hauptmethode eingeben?

Wählen Sie diese Option aus, um den Java-Code im Feld "Erforderliche Hauptmethode" anzugeben.

Deaktivieren Sie diese Option, um den Java-Code als eine Datensatzvariable im Feld "Erforderliche Hauptmethode als Ausdruck" anzugeben.

Dieses Kontrollkästchen ist standardmäßig aktiviert.

Erforderliche Hauptmethode

Gibt den Java-Codetext der Hauptmethode an. Sie können nach allen Dateien suchen, die diesen Code enthalten. Die Hauptmethode besteht aus normalen Java-Anweisungen und Ausdrücken. Sie müssen Objekte initialisieren und verwenden, die im Java-SDK oder in externen JAR-Dateien definiert sind.

Hinweis: Wenn Sie auf "OK" klicken, analysiert CA Process Automation den Code und überprüft die strukturelle Validierung. Eine Fehlermeldung wird angezeigt, wenn ein Fehler in der Struktur des Codes gefunden wird.

Weitere Informationen finden Sie unter Java-Code im Operator "Java aufrufen".

Erforderliche Hauptmethode als Ausdruck

Gibt die Datensatzvariable an, die den Inhalt der Hauptmethode enthält. Die Hauptmethode besteht aus normalen Java-Anweisungen und Ausdrücken. Sie müssen Objekte initialisieren und verwenden, die im Java-SDK oder in externen JAR-Dateien definiert sind. Es erfolgt keine strukturelle Validierung.

Weitere Informationen finden Sie unter Java-Code im Operator "Java aufrufen".

Kontext-Klassenladeprogramm festlegen?

Legen Sie dieses Feld abweichend vom Standardwert fest, wenn Ihre Hauptmethode bzw. Ihre externe JAR-Datei zum Laden das Java-Kontext-Klassenladeprogramm benötigt. Legen Sie als Java-Kontext-Klassenladeprogramm entweder das Operator-Klassenladeprogramm oder das Modul-Klassenladeprogramm fest, um eine Ausnahme des Typs "ClassCastException" zu vermeiden.

Der Operator "Java aufrufen" verwendet eine Kette von Klassenladeprogrammen, um Klassen zu laden, während der Java-Code ausgeführt wird. Diese Kette ist folgendermaßen aufgebaut (neben weiteren Klassenladeprogrammen):

  1. Operator-Klassenladeprogramm: Ein Klassenladeprogramm für das laden der Klassen, die auf Operatorebene angegeben wurden.
  2. Modul-Klassenladeprogramm: Ein Klassenladeprogramm für das laden der Klassen, die auf Modulebene angegeben wurden.
  3. Kontext-Klassenladeprogramm
  4. Normales Java Class.ForName

Der Operator konsultiert die angegebenen Klassenladeprogramme nacheinander und wechselt zum nächsten, wenn eine Klasse nicht gefunden wird.

Diese Kette funktioniert, solange der Code, den Sie ausführen, nicht ausdrücklich sein eigenes Klassenladeprogramm verwendet. In diesem Fall wird in den Protokollen "ClassCastException" angezeigt.

Beispiel:

Beachten Sie, dass die Klasse "MyChildXMLParser" eine Erweiterung der Klasse "MyParentXMLParser" ist. Das folgende Codefragment erstellt eine MyParentXMLParser-Klasse durch die Verwendung einer Java-Factory. Diese Factory lädt und erstellt eine MyChildXMLParser-Klasse, die in ein MyParentXMLParser-Objekt umgeformt werden kann:

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

Beachten Sie in diesem Beispiel Folgendes:

Um dieses Problem zu lösen, legen Sie im Feld "Kontext-Klassenladeprogramm festlegen" einen der folgenden Werte fest:

Hinweis: "0 : Standard" wird in allen anderen Fällen verwendet, in denen Ihr Java-Code nicht ausdrücklich Klassen mithilfe des eigenen Klassenladeprogramms lädt. Dieser Wert ist der Standardwert dieses Felds.

Wenn das Kontext-Klassenladeprogramm auf das Klassenladeprogramm des Operators "Java aufrufen" festgelegt wird, wird erzwungen, dass die Java-Factorys, die vom Code des Anwenders angerufen werden, das Klassenladeprogramm des Operators "Java aufrufen" verwenden. Diese Aktion entfernt "ClassCastException".