AspectJ tissage charge à temps pour les pots signés
-
29-09-2019 - |
Question
Quelqu'un succès dans l'utilisation de tissage charge en temps AspectJ avec des pots signés?
J'ai une exception et ne savent pas comment le réparer (testé avec 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
Franchement événement, je ne sais pas si cela est techniquement possible, mais je sais que cette question similaire (en utilisant le code java généré dynamiquement à partir des classes signées java) a été fait pour le projet Mise en veille prolongée (à savoir l'aide Javassist au lieu de CGLIB). Plus de détails en .
La solution
Le problème Simular est décrit dans https://bugs.eclipse.org/ bugs / show_bug.cgi? id = 328099 et fixe dans AspectJ 1.6.12. AspectJ génère parfois des cours de fermeture pendant le tissage et ceux-ci doivent être définis avec le même domaine de protection que le pot qui leur a donné naissance. En 1.6.12.M1 cela devrait maintenant fonctionner correctement.