有人成功地使用签名的罐子来使用seactj加载时间编织吗?

我有一个例外,不知道如何修复它(对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

坦率地说,我不确定是否在技术上可能做到这一点,但是我知道与Hibernate Project(即使用Javassist代替CGLIB)完成了类似的问题(使用签名Java类动态生成的Java代码)。细节是 这里.

有帮助吗?

解决方案

模拟问题在 https://bugs.eclipse.org/bugs/show_bug.cgi?id=328099 并固定在aSpectj 1.6.12中。 extackJ有时在编织过程中会产生封闭类,并且必须使用与产生它们的罐子相同的保护域来定义这些类别。在1.6.12.m1中,现在应该正确工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top