2010-11-08 20 views
7

क्या कोई भी हस्ताक्षरित जार के साथ 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 

सच कहूं बोल रहा घटना यकीन नहीं अगर यह तकनीकी रूप से संभव है, लेकिन मैं इसी तरह की है कि पता मुद्दा (हस्ताक्षर किए गए जावा कक्षाओं से गतिशील रूप से जेनरेट किए गए जावा कोड का उपयोग करके) हाइबरनेट परियोजना के लिए किया गया था (यानी CGLIB के बजाए जावासिस्ट का उपयोग करना)। विवरण here हैं।

उत्तर

3

सिमुलेटर समस्या https://bugs.eclipse.org/bugs/show_bug.cgi?id=328099 में वर्णित है और AspectJ 1.6.12 में तय की गई है। AspectJ कभी-कभी बुनाई के दौरान बंद कक्षाएं उत्पन्न करता है और इन्हें उसी सुरक्षा डोमेन के साथ परिभाषित किया जाना चाहिए जो जार के रूप में उन्हें जन्म देता है। 1.6.12.एम 1 में यह अब सही ढंग से काम करना चाहिए।