java – 用于签名jar的AspectJ加载时编织

是否有人成功使用带有签名罐的AspectJ加载时编织?

我有一个例外,不知道如何解决它(使用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

坦率地说,事件我不确定它是否在技术上可行,但我知道类似的问题(使用来自签名java类的动态生成的java代码)是为Hibernate项目完成的(即使用Javassist而不是cglib).细节是here.

解决方法

类似问题在 https://bugs.eclipse.org/bugs/show_bug.cgi?id=328099中描述并在AspectJ 1.6.12中修复. AspectJ有时会在编织过程中生成闭包类,并且必须使用与产生它们的jar相同的保护域来定义它们.在1.6.12.M1中,现在应该可以正常工作.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...