Tôi đã cố định cấu hình thời gian tải dệt (để làm hồ sơ với Perf4J) theo cách tiếp theo:Làm thế nào để cấu hình thời gian tải dệt với AspectJ và Tomcat?
1) Tôi đã thêm aop.xml
vào thư mục META-INF
. Khi được triển khai, META-INF được đặt trong thư mục gốc tạo tác (ví dụ: MyAppDeployed/META-INF
).
2) Tôi đặt aspectjrt-1.6.1.jar
, aspectjweaver-1.6.1.jar
, commons-jexl-1.1.jar
, commons-logging.jar
vào thư mục Tomcat/lib
(lúc đầu tôi đã cố gắng MyAppDeployed/WEB-INF/libs
nhưng nó cũng không làm việc).
3) Tôi đã thêm -javaagent:C:\apache-tomcat-6.0.33\lib\aspectjweaver-1.6.1.jar
vào các tùy chọn VM khi khởi động Tomcat.
4) My 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>
Tôi không thấy bất kỳ dấu hiệu cho thấy thời gian nạp dệt xảy ra. Cả báo cáo lỗi cũng như kết quả không cần thiết. Thông báo lỗi duy nhất tôi có là:
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
trong trường hợp tôi nhầm lẫn trong tên aspectjweaver-1.6.1.jar
khi chỉ định tham số javaagent. Nếu nó được viết chính xác - không có thông báo lỗi nào được in.
Bất kỳ ý tưởng nào, tôi đang làm gì sai?
P.S. Tôi sử dụng Java 5 và tôi đã thử những điều tương tự với phiên bản 1.5.4
của aspectj với kết quả giống hệt nhau.
Bạn đã bao giờ tìm ra vấn đề này chưa? Tôi đang cố gắng để cấu hình Aspectj + tomcat với thời gian tải dệt trong Eclipse. Cụ thể là tôi đang cố gắng dệt JSP nhưng không có may mắn. – bsimic
Tôi có một tình huống tương tự nhưng có nó hoạt động khi chú thích là trên lớp thực hiện của tôi.Đó là com.mypackages.MyClass của bạn một giao diện hoặc thực hiện? Các khía cạnh của tôi không được dệt khi tôi có chú thích trên giao diện. Ngoài ra một điều nữa tôi có tập tin aop.xml dưới ../webapps/MyAppDeployed/WEB-INF/classes/META-INF/aop.xml không chắc chắn nếu điều đó tạo ra sự khác biệt. – dineshr