Wie konfiguriere ich Load-Time-Weben mit AspectJ und Tomcat?
Ich habe versucht, Load-Time-Weben (für die Profilerstellung mit Perf4J) wie folgt zu konfigurieren:
1) Ich fügte hinzuaop.xml
zuMETA-INF
Mappe. Bei der Bereitstellung wird META-INF im Artefakt-Stammverzeichnis abgelegt (d. H.MyAppDeployed/META-INF
).
2) ich setzteaspectjrt-1.6.1.jar
, aspectjweaver-1.6.1.jar
, commons-jexl-1.1.jar
, commons-logging.jar
zumTomcat/lib
Ordner (zuerst habe ich versuchtMyAppDeployed/WEB-INF/libs
aber es hat auch nicht funktioniert).
3) Ich fügte hinzu-javaagent:C:\apache-tomcat-6.0.33\lib\aspectjweaver-1.6.1.jar
zu VM-Optionen beim Starten von Tomcat.
4) Meineaop.xml
:
<code><!DOCTYPE aspectj PUBLIC "-//AspectJ//DTD//EN" "http://www.eclipse.org/aspectj/dtd/aspectj.dtd"> <aspectj> <aspects> <aspect name="org.perf4j.log4j.aop.TimingAspect"/> </aspects> <weaver options="-verbose -showWeaveInfo"> <include within="com.mypackages.MyClass"/> </weaver> </aspectj> </code>
Ich sehe keine Anzeichen dafür, dass das Weben während der Ladezeit stattfindet. Weder Fehlerberichte noch notwendige Ergebnisse. Die einzige Fehlermeldung, die ich habe, ist:
<code>Error occurred during initialization of VM agent library failed to init: instrument Error opening zip file: C:\apache-tomcat-6.0.33\lib\wrong-jar.jar </code>
in einem Fall, in dem ich einen Fehler in aaspectjweaver-1.6.1.jar
name, wenn ein javaagent-Parameter angegeben wird. Wenn es richtig geschrieben ist, werden keine Fehlermeldungen gedruckt.
Irgendwelche Ideen, was mache ich falsch?
P.S. Ich benutze Java 5 und habe die gleichen Dinge mit ausprobiert1.5.4
Version des aspectj mit genau den gleichen Ergebnissen.