我尝试以以下方式配置加载时编织(用于使用 Perf4J 进行分析):
1)我添加aop.xml
到META-INF
文件夹。部署时,META-INF 被放置在工件根目录(即MyAppDeployed/META-INF
)中。
2)我把aspectjrt-1.6.1.jar
, aspectjweaver-1.6.1.jar
, commons-jexl-1.1.jar
,commons-logging.jar
放到Tomcat/lib
文件夹中(起初我尝试过MyAppDeployed/WEB-INF/libs
,但也没有用)。
3)我-javaagent:C:\apache-tomcat-6.0.33\lib\aspectjweaver-1.6.1.jar
在启动Tomcat时添加了VM选项。
4)我的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>
我没有看到任何迹象表明加载时编织发生了。既没有错误报告也没有必要的结果。我唯一的错误信息是:
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
以防我aspectjweaver-1.6.1.jar
在指定 javaagent 参数时名称错误。如果正确写入 - 不会打印错误消息。
任何想法,我做错了什么?
PS我使用Java 5,我用1.5.4
aspectj的版本尝试了同样的事情,结果完全相同。