2010-11-08 14 views
7

Qualcuno ha successo nell'utilizzare la trama di caricamento AspectJ con vasi firmati?AspectJ tessitura di caricamento in tempo per vasi firmati

ho ottenuto un'eccezione e non hanno idea di come risolvere il problema (testato 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 simili problema (usando il codice java generato dinamicamente dalle classi java firmate) è stato fatto per il progetto Hibernate (cioè usando Javassist al posto di CGLIB). I dettagli sono here.

risposta

3

Il problema simulare è descritto in https://bugs.eclipse.org/bugs/show_bug.cgi?id=328099 e risolto in AspectJ 1.6.12. AspectJ a volte genera classi di chiusura durante la tessitura e queste devono essere definite con lo stesso dominio di protezione del barattolo che le ha generate. In 1.6.12.M1 ora dovrebbe funzionare correttamente.

Problemi correlati