2012-12-17 17 views
8

मैं जावा आधारित कॉन्फ़िगरेशन के साथ स्प्रिंग 3.2 का उपयोग कर रहा हूं और मेरे यूनिट परीक्षणों (जुनीट 4.8.1) के साथ कुछ समस्याएं हैं। स्प्रिंग 3.2 CGLIB 3. इनलाइनिंग है तो क्यों मैं यह त्रुटि प्राप्त करतेजावा आधारित कॉन्फ़िगरेशन के साथ स्प्रिंग 3.2 यूनिट परीक्षण

Caused by: java.lang.IllegalStateException: CGLIB is required to process @Configuration classes. Either add CGLIB to the classpath or remove the following @Configuration bean definitions: [testConfig] 
at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:327) 
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanFactory(ConfigurationClassPostProcessor.java:222) 

Spring blog राज्यों के रूप में:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes={TestConfig.class}) 
public class ManualTest 
{ 
    @Autowired 
    ... 

howeever, मैं इस त्रुटि मिल रही है: तो यह एक परीक्षण धावक है?

मैं बिल्ड प्रबंधन उपकरण और एसटीएस के रूप में ग्रैडल 1.3 का उपयोग आईडीई के रूप में कर रहा हूं। जब बुला gradle eclipse Gradle दो बार निर्भरता में खींचती है: सादे जार के रूप में एक बार और पुस्तकालय के रूप में एक बार:

सादा जार के रूप में पहली: plain jar

और से पुस्तकालय के रूप में:

library

सादे जार सेक्शन में मैंने अभी भी वसंत 3.1 कॉन्फ़िगर किया था, जबकि पुस्तकालय अनुभाग में वसंत 3.2 था। तो मैंने सादे जार हटा दिए और सबकुछ काम कर रहा था।

यह build.gradle

configurations 
{ 
    driver 
} 

dependencies 
{ 
    driver 'com.oracle:ojdbc6:11.2.0' 

    compile "org.springframework:spring-jdbc:$springVersion" 

    testCompile 'com.oracle:ojdbc6:11.2.0' 
    testCompile "org.springframework:spring-test:$springVersion" 
    testCompile "commons-dbcp:commons-dbcp:$dbcpVersion" 
    testCompile "junit:junit:$junitVersion" 
    testCompile "org.slf4j:slf4j-log4j12:$slf4jVersion" 
} 

sourceSets 
{ 
    main 
    { 
     java 
     { 
      srcDirs 'src/main/java', "$buildDir/generated-sources/" 
     } 
    } 
} 

अपने प्रोजेक्ट और मास्टर परियोजना

configure(allprojects) 
{ 
    ext.dbcpVersion = '1.4' 
    ext.springVersion = '3.2.0.RELEASE' 
    ext.junitVersion = '4.8.1' 
    ext.slf4jVersion = '1.7.2' 
} 

subprojects 
{ 
    // Artifact settings 
    group = 'xxx' 
    version = '1.0-SNAPSHOT' 

    // Standard plugins 
    apply plugin: 'java' 
    apply plugin: 'eclipse' 

    // Repositories 
    repositories 
    { 
     mavenLocal() 
     maven 
     { 
      url "http://repo.springsource.org/release" 
     } 
     mavenCentral() 
    } 

    // Standard dependencies 
    dependencies 
    { 
    } 
} 
+0

क्या आप अपनी कक्षापथ सामग्री पोस्ट कर सकते हैं? या mom का उपयोग करते हुए pom.xml? – ElderMael

+0

क्या यह ग्रहण और ग्रेडल कमांड लाइन दोनों में विफल रहता है? – artbristol

+0

केवल ग्रहण (एसटीएस) में। – ChrLipp

उत्तर

2

मैं सभी ग्रहण परियोजनाओं और सेटिंग्स और सभी Gradle अस्थायी फ़ाइलों को नष्ट कर दिया से build.gradle है। तब मैंने ग्रहण (आयात ग्रेड परियोजना ..) में परियोजना आयात करने की कोशिश की। यह एक अपवाद के साथ विफल रहा। फिर मैंने ग्रहण परियोजना के भीतर ग्रैडल सेटिंग्स को हटा दिया और उसके बाद आयात काम किया।

तो मैं संस्करण 1.3 के साथ gradle eclipse का उपयोग नहीं करूंगा।

इसके अलावा अतिरिक्त स्रोत सेट पथ ने ईक्लीप्स परियोजना में स्रोत पथ के रूप में अपना रास्ता नहीं बनाया।

1

मुझे एक ही समस्या थी। बस अपने pom.xml फ़ाइल को यह निर्भरता जोड़ें:

<dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

और अपने इकाई परीक्षण और रनटाइम कोड cglib त्रुटियों के बिना ठीक से काम करना चाहिए।

+0

मैंने मैवेन से ग्रैडल तक एक प्रोजेक्ट माइग्रेट किया और, आश्चर्यजनक रूप से, वसंत-संदर्भ निर्भरता का उपयोग संस्करण एक अलग था: अपेक्षित 4.x के बजाय 3.1.x। इसने अपवाद को समझाया क्योंकि स्प्रिंग 3.2 से पहले CGLib को रेखांकित करता है लेकिन पहले नहीं। उपर्युक्त निर्भरता जोड़ने के बाद त्रुटि गायब हो गई।यह एक दयालु बात है कि धीरे-धीरे मेवेन के आयात के दायरे का समर्थन नहीं करता है। अन्यथा कोई भी बीओएम (सामग्री का बिल) का उपयोग कर सकता है। – rwitzel

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