Ich habe versucht, das Load-Time-Weben (für das Profiling mit Perf4J) auf die nächste Art zu konfigurieren:
1) Ich habe aop.xml
zum Ordner META-INF
hinzugefügt. Bei der Bereitstellung wird META-INF in das Stammverzeichnis des Artefakts gestellt (d. H.% Co_de%).
2) Ich habe MyAppDeployed/META-INF
, aspectjrt-1.6.1.jar
, aspectjweaver-1.6.1.jar
, commons-jexl-1.1.jar
in den Ordner commons-logging.jar
gesetzt (zuerst habe ich Tomcat/lib
versucht, aber es hat auch nicht funktioniert).
3) Ich habe MyAppDeployed/WEB-INF/libs
den VM-Optionen hinzugefügt, als ich Tomcat gestartet habe.
4) Mein -javaagent:C:\apache-tomcat-6.0.33\lib\aspectjweaver-1.6.1.jar
:
Ich sehe keine Anzeichen dafür, dass das Laden-Zeit-Weben geschieht. Weder Fehlerberichte noch notwendige Ergebnisse. Die einzige Fehlermeldung, die ich habe, ist:
%Vor% in einem Fall, wenn ich einen Fehler in einem aop.xml
name mache, wenn ich einen javaagent-Parameter angegeben habe. Wenn es richtig geschrieben ist - keine Fehlermeldungen werden gedruckt.
Irgendwelche Ideen, was mache ich falsch?
P.S. Ich benutze Java 5, und ich habe die gleichen Dinge mit aspectjweaver-1.6.1.jar
version des aspectj mit genau den gleichen Ergebnissen versucht.
Wenn Sie das Load-Time-Weben verwenden möchten, können Sie Ihre Klassen wie üblich mit javac kompilieren und dann Ihre Aspekte mit (i) ajc kompilieren. Sie können dies mit einer Ameisenaufgabe wie unten tun
%Vor%Es ist ausreichend, aspectjrt.jar während des Kompilierens im Klassenpfad ( "Hauptklassenpfad" ) zu haben.
Da alle meine Java-Klassen in $ {src.dir} enthalten sind, gebe ich eine Quellenliste für iajc. In der Quellenliste gibt es nur eine Zeile.
sources.lst
%Vor%Ich habe einige Attribute der iajc-Aufgabe wie folgt festgelegt:
%Vor%Wenn ich compile-aspect task ausführe, habe ich eine jar jar_file_name.jar Datei enthält
%Vor%Und schließlich fügen Sie die Datei * jar_file_name.jar * dem Ordner WEB-INF / lib Ihrer Webanwendung hinzu.
Starten Sie dann Tomcat mit -javaagents: /path_to_aspectjweaver.jar wie zuvor.
Wenn ich die aop.xml (oder aop-ajc.xml) in META-INF direkt unter die WAR-Datei lege, funktioniert sie nicht. Auf diese Weise (ich meine aspect classes in a jar) funktioniert einfach gut für mich.
Hoffe, das hilft.
Ich habe versucht, das gleiche Problem in Tomcat zu lösen. Zusätzlich zur Option -javaagent müssen Sie sicherstellen, dass sich die Datei aop.xml im Verzeichnis WEB-INF / classes / META-INF befindet. Das hat den Unterschied für mich gemacht.
Tags und Links java tomcat aspectj load-time-weaving perf4j