Ich habe versucht, Ladezeit Weben (dafür Profilierung mit Perf4J) in den nächsten Weg zu konfigurieren:Wie konfiguriere ich Ladezeitweben mit AspectJ und Tomcat?
1) Ich aop.xml
zu META-INF
Ordner hinzugefügt. Bei der Bereitstellung wird META-INF in das Wurzelverzeichnis des Artefakts gestellt (d. H. MyAppDeployed/META-INF
).
2) Ich habe aspectjrt-1.6.1.jar
, aspectjweaver-1.6.1.jar
, commons-jexl-1.1.jar
, commons-logging.jar
zum Tomcat/lib
Ordner (auf den ersten habe ich versucht, MyAppDeployed/WEB-INF/libs
aber es ging auch nicht).
3) Ich habe -javaagent:C:\apache-tomcat-6.0.33\lib\aspectjweaver-1.6.1.jar
den VM-Optionen beim Starten von Tomcat hinzugefügt.
4) Mein aop.xml
:
<!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>
Ich sehe keine Anzeichen dafür, dass die Ladezeit Weben geschieht. Weder Fehlerberichte noch notwendige Ergebnisse. Die einzige Fehlermeldung, die ich habe, ist:
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
in einem Fall, wenn ich einen Fehler in einem aspectjweaver-1.6.1.jar
Namen tun, wenn ein javaagent Parameter angeben. 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 1.5.4
Version des Aspektj mit genau den gleichen Ergebnissen versucht.
Haben Sie dieses Problem jemals herausgefunden? Ich versuche Aspectj + Tomcat mit Ladezeitweben in Eclipse zu konfigurieren. Insbesondere versuche ich JSPs zu weben, habe aber kein Glück. – bsimic
Ich habe eine ähnliche Situation, aber es funktioniert, wenn die Annotation auf meiner Implementierung Klasse ist. Ist Ihre com.mypackages.MyClass eine Schnittstelle oder eine Implementierung? Meine Aspekte wurden nicht gewebt, wenn ich die Anmerkung auf der Schnittstelle habe. Auch eine weitere Sache habe ich die aop.xml-Datei unter ../webapps/MyAppDeployed/WEB-INF/classes/META-INF/aop.xml nicht sicher, ob das einen Unterschied macht. – dineshr