Domanda

Il successo nessuno in utilizzando AspectJ load-time di tessitura con vasi firmati?

ho ottenuto un'eccezione e non hanno idea di come risolvere il problema (provato con AspectJ 1.6.8-16.10):

Exception in thread "main" java.lang.NoClassDefFoundError: com/package/clazz$AjcClosure1
    at com.package.test.main(test.java:55)
Caused by: java.lang.ClassNotFoundException: com.package.clazz$AjcClosure1
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    ... 1 more

Francamente evento non sicuro se è tecnicamente possibile, ma so che problema simile (utilizzando il codice Java generato dinamicamente da classi Java firmati) è stato fatto per il progetto Hibernate (vale a dire utilizzando Javassist invece di CGLIB). Dettagli sono qui .

È stato utile?

Soluzione

Il problema simular è descritta in https://bugs.eclipse.org/ bug / show_bug.cgi? id = 328099 e fissati in AspectJ 1.6.12. AspectJ talvolta genera classi di chiusura durante la tessitura e questi deve essere definita con lo stesso dominio di protezione come il vaso che ha originate. In 1.6.12.M1 questo dovrebbe funzionare correttamente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top