2010-11-08 15 views
7

¿Alguien tiene éxito en el uso del tejido de carga AspectJ con frascos firmados?Tejido de tiempo de carga AspectJ para frascos firmados

Tengo una excepción y no tienen idea de cómo solucionarlo (probado 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 caso de que no está seguro si es técnicamente posible, pero sé que al igual El problema (usando código java generado dinámicamente desde clases java firmadas) se realizó para el proyecto Hibernate (es decir, usando Javassist en lugar de CGLIB). Los detalles son here.

Respuesta

3

El problema similar se describe en https://bugs.eclipse.org/bugs/show_bug.cgi?id=328099 y se reparó en AspectJ 1.6.12. AspectJ a veces genera clases de cierre durante el tejido y éstas deben definirse con el mismo dominio de protección que el contenedor que las originó. En 1.6.12.M1, esto debería funcionar ahora correctamente.

Cuestiones relacionadas