加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 03:03:27 所属栏目:Java 来源:网络整理
导读:是否有人成功使用带有签名罐的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)Cau
是否有人成功使用带有签名罐的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中,现在应该可以正常工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读