Ho provato a configurare load-time tessitura (per fare profilatura con Perf4J) nel modo seguente:Come configurare la tessitura a tempo di caricamento con AspectJ e Tomcat?
1) ho aggiunto aop.xml
nella cartella META-INF
. Quando viene distribuito, META-INF viene inserito nella directory root artefatto (ad esempio MyAppDeployed/META-INF
).
2) Ho messo aspectjrt-1.6.1.jar
, aspectjweaver-1.6.1.jar
, commons-jexl-1.1.jar
, commons-logging.jar
alla cartella Tomcat/lib
(in un primo momento ho cercato MyAppDeployed/WEB-INF/libs
ma anche non ha funzionato).
3) Ho aggiunto -javaagent:C:\apache-tomcat-6.0.33\lib\aspectjweaver-1.6.1.jar
alle opzioni della VM all'avvio di Tomcat.
4) Il mio 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>
non vedo alcun segno che la tessitura load-time succede. Né segnalazioni di errori né risultati necessari. L'unico messaggio di errore che ho è:
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 un caso quando faccio un errore in un nome aspectjweaver-1.6.1.jar
quando specificare un parametro javaagent. Se è scritto correttamente, non viene stampato alcun messaggio di errore.
Qualche idea, cosa sto sbagliando?
P.S. Io uso Java 5 e ho provato le stesse cose con la versione 1.5.4
dell'aspetto con esattamente gli stessi risultati.
Hai mai capito questo problema? Sto cercando di configurare Aspectj + tomcat con il tempo di caricamento in Eclipse. Nello specifico sto cercando di tessere JSP ma non ho fortuna. – bsimic
Ho una situazione simile ma ho funzionato quando l'annotazione si trova sulla mia classe di implementazione. Il tuo com.mypackages.MyClass è un'interfaccia o un'implementazione? I miei aspetti non si intessevano quando ho l'annotazione sull'interfaccia. Inoltre un'altra cosa che ho il file aop.xml sotto ../webapps/MyAppDeployed/WEB-INF/classes/META-INF/aop.xml non sono sicuro se questo fa la differenza. – dineshr