Announcement

Collapse
No announcement yet.

Java.lang.Instrument mit Tomcat

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Java.lang.Instrument mit Tomcat

    Hallo,
    erstmal Lob für das hilfreiche und aufgeräumte Forum!

    Mein Problem:
    Im Eclipse läuft es, im Tomcat nicht.
    Die Aufgabe ist die Instrumentierung von Bytecode, durch einen Javaagenten.

    Eclipse
    Der Agent wird über die Java-Option „-javaagent:agentenpfad“ übergeben.
    Der Namespace java.lang.instrument bietet dabei die Funktionalität der Instrumentierung.
    Der Agent enthält eine premain-Methode. Diese erhält von der JVM eine Instrumentierung.
    An dieser kann der Agent einen Klassentransformer anmelden.
    Die Anmeldung bewirkt, dass Bytecode vor dem Laden an den Transformer gesendet wird
    und erst danach in den ClassLoader kommt.
    FUNKTIONIERT

    Tomcat
    Hier wird der Agent ebenfalls über die „-javaagent“ Option geladen. Ich weiß nämlich nicht, wie ich an die Instrumentierung komme, ohne dies zu tun.
    Das Problem scheint zu sein, dass dadurch der Agent vom SystemClassLoader geladen wird. Die Applikationen (/webapps) jedoch vom
    WebAppClassLoader. Somit werden die Klassen nicht vom Agenten gesehen und können nicht instrumentiert werden.

    Hat da jemand einen Tip oder schon Erfahrungen gemacht!?

  • #2
    Erledigt

    Die Lösung ist, dass der Transformer für den Bytecode, ClassLoader herausgefiltert hat und daher nicht instrumentierte.

    Trotzdem danke!

    Comment

    Working...
    X