Hello all, I try to complete LTW example from AspectJ Cookbook, but it doesn't work. I created and compiled Java class:
public class MyClass{ public void foo(int number, String name){ System.out.println("Inside of foo"); } public static void main(String[] args) { MyClass myObject = new MyClass(); myObject.foo(1, "Str"); } } it works just fine: c:\TEMP\examples>java MyClass Inside of foo Then I created aspect: public aspect HelloWorld{ pointcut callPointcut(): call(void MyClass.foo(int, String)); before() : callPointcut(){ System.out.println("Hello World from advice"); } } compiled it: c:\TEMP\examples>c:\tools\aspectj1.8\bin\ajc -outjar my.jar HelloWorld.aj C:\TEMP\examples\HelloWorld.aj:4 [warning] no match for this type name: MyClass [Xlint:invalidAbsoluteTypeName] pointcut callPointcut(): call(void MyClass.foo(int, String)); ^^^^^^^^^ [Xlint:invalidAbsoluteTypeName] 1 warning And then try to run: c:\TEMP\examples>java -classpath "C:\tools\aspectj1.8\lib\aspectjweaver.jar" "-Djava.system.class.loader=org.aspectj.weaver.loadtime.WeavingURLClassLoader" -Daj.class.path=. "-Daj.aspect.path=c:\TEMP\examples" MyClass java.lang.ExceptionInInitializerError at org.aspectj.weaver.WeaverMessages.<clinit>(WeaverMessages.java:18) at org.aspectj.weaver.bcel.ClassPathManager.addPath(ClassPathManager.java:81) at org.aspectj.weaver.bcel.ClassPathManager.<init>(ClassPathManager.java:63) at org.aspectj.weaver.bcel.BcelWorld.<init>(BcelWorld.java:285) at org.aspectj.weaver.tools.WeavingAdaptor.init(WeavingAdaptor.java:176) at org.aspectj.weaver.tools.WeavingAdaptor.<init>(WeavingAdaptor.java:109) at org.aspectj.weaver.loadtime.WeavingURLClassLoader.<init>(WeavingURLClassLoader.java:75) at org.aspectj.weaver.loadtime.WeavingURLClassLoader.<init>(WeavingURLClassLoader.java:52) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at java.lang.SystemClassLoaderAction.run(Unknown Source) at java.lang.SystemClassLoaderAction.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.lang.ClassLoader.initSystemClassLoader(Unknown Source) at java.lang.ClassLoader.getSystemClassLoader(Unknown Source) Caused by: java.lang.IllegalStateException: recursive invocation at java.lang.ClassLoader.initSystemClassLoader(Unknown Source) at java.lang.ClassLoader.getSystemClassLoader(Unknown Source) at java.util.ServiceLoader.loadInstalled(Unknown Source) at java.util.ResourceBundle.<clinit>(Unknown Source) ... 17 more Error occurred during initialization of VM java.lang.ExceptionInInitializerError at org.aspectj.weaver.WeaverMessages.<clinit>(WeaverMessages.java:18) at org.aspectj.weaver.bcel.ClassPathManager.addPath(ClassPathManager.java:81) at org.aspectj.weaver.bcel.ClassPathManager.<init>(ClassPathManager.java:63) at org.aspectj.weaver.bcel.BcelWorld.<init>(BcelWorld.java:285) at org.aspectj.weaver.tools.WeavingAdaptor.init(WeavingAdaptor.java:176) at org.aspectj.weaver.tools.WeavingAdaptor.<init>(WeavingAdaptor.java:109) at org.aspectj.weaver.loadtime.WeavingURLClassLoader.<init>(WeavingURLClassLoader.java:75) at org.aspectj.weaver.loadtime.WeavingURLClassLoader.<init>(WeavingURLClassLoader.java:52) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at java.lang.SystemClassLoaderAction.run(Unknown Source) at java.lang.SystemClassLoaderAction.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.lang.ClassLoader.initSystemClassLoader(Unknown Source) at java.lang.ClassLoader.getSystemClassLoader(Unknown Source) Caused by: java.lang.IllegalStateException: recursive invocation at java.lang.ClassLoader.initSystemClassLoader(Unknown Source) at java.lang.ClassLoader.getSystemClassLoader(Unknown Source) at java.util.ServiceLoader.loadInstalled(Unknown Source) at java.util.ResourceBundle.<clinit>(Unknown Source) at org.aspectj.weaver.WeaverMessages.<clinit>(WeaverMessages.java:18) at org.aspectj.weaver.bcel.ClassPathManager.addPath(ClassPathManager.java:81) at org.aspectj.weaver.bcel.ClassPathManager.<init>(ClassPathManager.java:63) at org.aspectj.weaver.bcel.BcelWorld.<init>(BcelWorld.java:285) at org.aspectj.weaver.tools.WeavingAdaptor.init(WeavingAdaptor.java:176) at org.aspectj.weaver.tools.WeavingAdaptor.<init>(WeavingAdaptor.java:109) at org.aspectj.weaver.loadtime.WeavingURLClassLoader.<init>(WeavingURLClassLoader.java:75) at org.aspectj.weaver.loadtime.WeavingURLClassLoader.<init>(WeavingURLClassLoader.java:52) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at java.lang.SystemClassLoaderAction.run(Unknown Source) at java.lang.SystemClassLoaderAction.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.lang.ClassLoader.initSystemClassLoader(Unknown Source) at java.lang.ClassLoader.getSystemClassLoader(Unknown Source) I try different solutions and exception occurs only if I provide -Daj.aspect.path=c:\TEMP\examples, but as far as I understand it is because weaver will load aspect only of this option is provided. Without this option Java program works without any aspects weaved at load time. -- Best regards, Andrey _______________________________________________ aspectj-users mailing list aspectj-users@eclipse.org To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/aspectj-users