I don't tend to run LTW like that, I use the agent - I think that's what we
recommend.  I just ran your code ok:

javac MyClass.java

ajc HelloWorld.java -1.8 -outxml -d out

export CLASSPATH=.:out:$CLASSPATH

java -javaagent:$AJHOME/lib/aspectjweaver.jar MyClass
Hello World from advice
Inside of foo

Are you ok with using the agent?  The -outxml line on the ajc call is what
produces the META-INF/aop-ajc.xml file in the out folder, and that is what
the agent will look for to turn on weaving. (That xml file will simply list
the aspects to 'turn on')

cheers,
Andy

On 22 January 2016 at 00:34, Andrey Semenyuk <andyg...@ya.ru> wrote:

> 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
>
_______________________________________________
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

Reply via email to