2013-08-14 5 views
12

AM को संसाधित करने की आवश्यकता है। युद्ध मेवेन का उपयोग नहीं किया गया है। यह सिर्फ एक सामान्य निर्माण है। मेरे पास मेरे वर्ग पथ में जार से नीचे है।CGLIB को वसंत 3.1 का उपयोग कर @ कॉन्फ़िगरेशन कक्षा

antlr-runtime-3.0.1.jar 
commons-logging-1.1.1.jar 
org.apache.commons.logging.jar 
org.springframework.aop-3.1.0.M2.jar 
org.springframework.asm-3.1.0.M2.jar 
org.springframework.aspects-3.1.0.M2.jar 
org.springframework.beans-3.1.0.M2.jar 
org.springframework.context-3.1.0.M2.jar 
org.springframework.context.support-3.1.0.M2.jar 
org.springframework.core-3.1.0.M2.jar 
org.springframework.core-3.1.0.RELEASE.jar 
org.springframework.core.jar 
org.springframework.expression-3.1.0.M2.jar 
spring-beans-3.0.5.RELEASE.jar 
spring-context-3.0.5.RELEASE.jar 

मैं कोड के नीचे है,

@Configuration 
public class AppConfig { 

    @Bean(name="helloBean") 
    public HelloWorld helloWorld() 
    { 
     return new HelloWorldImpl(); 
    } 
} 

जब मैं main विधि चलाते हैं, तो अपवाद

Exception in thread "main" java.lang.IllegalStateException: CGLIB is required to process @Configuration classes. Either add CGLIB to the classpath or remove the following @Configuration bean definitions: [appConfig] 
at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:297) 
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigurationClasses(ConfigurationClassPostProcessor.java:200) 

नीचे हो रही है इस पर काबू पाने के लिए, अगर मैं cglib-2.1.jar जोड़ने के लिए, अपवाद नीचे हो रही है।

java.lang.ClassNotFoundException: org.objectweb.asm.Type 

इससे निपटने के लिए, यदि मैं asm3.1.jar जोड़ता हूं, तो अपवाद नीचे आ रहा हूं।

java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter. 

मैं अपने प्रारंभिक अपवाद कैसे दूर कर सकते हैं - CGLIB is required to process @Configuration classes ?

+0

संभवतः http://stackoverflow.com/questions/2432471/error-java-lang-nosuchmethoderror-org-objectweb-asm-classwriter-initiv –

उत्तर

10

युद्ध Maven उपयोग करके नहीं बनाया गया है। यह सिर्फ एक सामान्य निर्माण

आपकी समस्या वास्तव में हाइलाइट करती है कि आपको मेवेन (या अन्य समान निर्भरता उपकरण) का उपयोग क्यों करना चाहिए - सीखने की चीजों को कड़ी मेहनत पर बधाई देना। जावा दुनिया में पुस्तकालयों में अक्सर एक जटिल जटिलता वृक्ष होता है और मेवेन आपके लिए इसे हल करने में मदद कर सकता है।

आपके मामले में, आप Maven तुम सिर्फ cglib निर्भरता और उसके सभी सकर्मक निर्भरता (ASM सहित) शामिल करने की जरूरत के लिए इस्तेमाल किया समाधान हो जाएगा के लिए आप

<dependency> 
    <groupId>cglib</groupId> 
    <artifactId>cglib</artifactId> 
    <version>3.0</version> 
</dependency> 
+0

धन्यवाद का एक डुप्लिकेट धन्यवाद .. लेकिन, बिना इसे हल करना संभव नहीं है मेवेन में स्विचिंग? मेरी कंपनी द्वारा कुछ यूआरएल अवरुद्ध किए गए हैं और जब मैंने मेवेन का उपयोग करके भवन बनाने की कोशिश की, तो एक कनेक्शन टाइमआउट था .. – user2488578

+0

इसे हल करने का दूसरा तरीका यह है कि आपको cglib (और अन्य सभी तृतीय पक्ष पुस्तकालयों का उपयोग करने का निर्णय लेने) के सभी पारगमन निर्भरता को मैन्युअल रूप से हल करना होगा और इसे अपने क्लासपाथ में शामिल करना होगा। मेवेन केंद्रीय भंडार खोज इंजन: http://search.maven.org आपकी मदद कर सकता है - वहां से आप देख सकते हैं कि किसी विशेष आर्टिफैक्ट की निर्भरता क्या है। कृपया ध्यान दें कि मैवेन कॉर्पोरेट वातावरण में व्यापक रूप से उपयोग किया जाने वाला बुनियादी ढांचा है। बड़े कॉर्पोरेट में अक्सर केंद्रीय भंडार का अपना दर्पण होता है (नेक्सस देखें)। मैं दृढ़ता से सुझाव देता हूं कि आप मेवेन – gerrytan

+0

को सक्षम करने के लिए अपने नेटवर्क व्यवस्थापक को राजी करें। इसे मेवेन के बिना काम करने के लिए स्वतंत्र होना चाहिए। मेवेन एक आवश्यकता नहीं होनी चाहिए। – Tastybrownies

2

CGLIB पुस्तकालय अपने कार्यक्रम में आवश्यक है था। आप निर्भरता डाउनलोड करने के लिए मेवेन का उपयोग कर सकते हैं।

xml द्वारा gerrytan यानी द्वारा पोस्ट किया गया।

<dependency> 
<groupId>cglib</groupId> 
<artifactId>cglib</artifactId> 
<version>3.0</version> 
</dependency> 

आप Maven (या अन्य निर्भरता उपकरण) का उपयोग नहीं कर रहे हैं, तो आप CGLIB HomePage से पुस्तकालय डाउनलोड कर सकते हैं।

1

उपयोग cglib-2.2.jar और एएसएम-3.3.jar और यह अपने classpath

3

जोड़ने स्प्रिंग 3.2 के साथ शुरू, यह अब आवश्यक एक स्पष्ट निर्भरता के रूप में cglib जोड़ना है।

संदर्भ:http://www.baeldung.com/2011/10/20/bootstraping-a-web-application-with-spring-3-1-and-java-based-configuration-part-1/#cglib_gone

इस उत्तर जो लोग सोचा है कि अपनी परियोजना cglib बिना सामान्य रूप से चल रहा है, और इस पेज के रूप में मुझे cglib के बारे में जानकारी के लिए खोज करने के लिए आने के लिए।

संबंधित मुद्दे