【问题标题】:AspectJ load-time weaving for signed jars签名 jar 的 AspectJ 加载时编织
【发布时间】:2011-05-06 14:15:51
【问题描述】:

是否有人成功使用带有签名 jar 的 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

坦率地说,我不确定这在技术上是否可行,但我知道 Hibernate 项目(即使用 Javassist 而不是 CGLIB)已经完成了类似的问题(使用从签名的 java 类动态生成的 java 代码)。详情here

【问题讨论】:

    标签: java tomcat aop aspectj load-time-weaving


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-07-27
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-13
      • 1970-01-01
      相关资源
      最近更新 更多