Übung 1.5: Laufzeitbibliothek für komplexere Sondenlogik verwenden

Bevor Sie mit dieser Übung beginnen, sollten Sie sich Übung 1.4: Komplexere Sonden erstellen durchlesen.

Mit dem Probekit ist es leicht, einfache Sonden mit einfachen Java-Codefragmenten zu schreiben. Wie Sie in Übung 1.4 gesehen haben, können Sie mit Basissonden recht ausgeklügelte Aktionen ausführen. Manchmal sind jedoch noch komplexere Schritte erforderlich, die über die Möglichkeiten einer einfachen Sonde hinausgehen. In einer solchen Situation sollten Sie nicht versuchen, die gesamte auszuführende Logik in Sondenfragmenten unterzubringen. Erstellen Sie stattdessen eine Laufzeitunterstützungsbibliothek für Ihre Sonden. Ihre Sondenfragmente können dann Aufrufe an diese Bibliothek mit den eigentlichen Aktionen senden.

Wenn Sie sich für eine Laufzeitbibliothek entschieden haben, müssen Sie sich Gedanken über das Aufrufen der Methoden machen. Die generierten Sondenklassen werden nicht vom Bootstrap-Klassenlader geladen und haben keinen direkten Zugriff auf die vom Systemklassenlader geladenen Klassen.

Nachfolgend sehen Sie ein Beispiel für ein "entry"-Fragment, das eine Methode entryHandler in der Laufzeitbibliothek aufruft:

Nehmen wir an, es gibt eine Klasse com.sample.ProbeSupport mit einer statischen Methode entryHandler, die Sie aufrufen möchten. Gehen wir weiter davon aus, dass die Methode entryHandler ohne Argumente verwendet wird und dass die Klasse vom Systemklassenlader geladen werden kann.

   try {
  String className = "com.sample.ProbeSupport";
  ClassLoader sysLoader = ClassLoader.getSystemClassLoader();
  Class cls = Class.forName(className, true, sysLoader);
  java.lang.reflect.Method mth = cls.getMethod("entryHandler", null);
  mth.invoke(null, null);
}
catch (Throwable t) {
  System.out.println("Sondenfehler bei Reflexionsversuch:");
  t.printStackTrace();
}

Bei den einzelnen Aufrufen können Sie Zeit sparen, indem Sie mit FragmentAtClassScope ein statisches Objekt java.lang.reflect.Method deklarieren und es nur einmal initialisieren.

Lesen Sie zum Abschluss des Lernprogramms die Informationen in der Zusammenfassung.

Nutzungsbedingungen | Feedback
(C) Copyright IBM Corporation 2000, 2005. Alle Rechte vorbehalten.