• 集成JUnit测试错误java.lang.IllegalStateException: Failed to load ApplicationContext


    1 详细错误信息

    java.lang.IllegalStateException: Failed to load ApplicationContext
         at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:157)
         at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:103)
         at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:73)
         at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:313)
         at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:211)
         at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:288)
         at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
         at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:284)
         at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231)
         at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:88)
         at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
         at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
         at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
         at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
         at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
         at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)
         at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
         at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174)
         at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
         at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74)
         at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:211)
         at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
         at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
    Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from file [E:NewWorkspace	runkatserver	argetclasseseans.xml]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'loginService' for bean class [cn.at.service.LoginService] conflicts with existing, non-compatible bean definition of same name and class [cn.at.service.LocationService]
         at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412)
         at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
         at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
         at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
         at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
         at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
         at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243)
         at org.springframework.test.context.support.AbstractGenericContextLoader.loadBeanDefinitions(AbstractGenericContextLoader.java:219)
         at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:103)
         at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:57)
         at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:100)
         at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:248)
         at org.springframework.test.context.TestContext.loadApplicationContext(TestContext.java:124)
         at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:148)
         ... 27 more
    Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'loginService' for bean class [cn.at.service.LoginService] conflicts with existing, non-compatible bean definition of same name and class [cn.at.service.LocationService]
         at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.checkCandidate(ClassPathBeanDefinitionScanner.java:312)
         at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:253)
         at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:84)
         at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73)
         at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1435)
         at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1425)
         at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:184)
         at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140)
         at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111)
         at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
         at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
         ... 40 more
    
    1866 DEBUG [2014-12-22 22:10:31]  Identified candidate component class: URL [jar:file:/C:/Users/hadoop/.m2/repository/cn/at/at.framework/1.3/at.framework-1.3.jar!/cn/at/mo/framework/thread/BaseQueue.class]
    1867 DEBUG [2014-12-22 22:10:31]  Identified candidate component class: URL [jar:file:/C:/Users/hadoop/.m2/repository/cn/at/at.framework/1.3/at.framework-1.3.jar!/cn/at/mo/framework/thread/MyExecuter.class]
    1914 ERROR [2014-12-22 22:10:31]  Caught exception while allowing TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener@49b880ae] to prepare test instance [cn.at.utils.TestCloudChartHttpUtil@70084551]
    java.lang.IllegalStateException: Failed to load ApplicationContext
         at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:157)
         at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:103)
         at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:73)
         at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:313)
         at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:211)
         at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:288)
         at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
         at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:284)
         at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231)
         at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:88)
         at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
         at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
         at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
         at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
         at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
         at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)
         at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
         at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174)
         at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
         at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74)
         at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:211)
         at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
         at java.lang.reflect.Method.invoke(Method.java:606)
         at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
    Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from file [E:NewWorkspace	runkatserver	argetclasseseans.xml]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'loginService' for bean class [cn.at.service.LoginService] conflicts with existing, non-compatible bean definition of same name and class [cn.at.service.LocationService]
         at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412)
         at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
         at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
         at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
         at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
         at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
         at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243)
         at org.springframework.test.context.support.AbstractGenericContextLoader.loadBeanDefinitions(AbstractGenericContextLoader.java:219)
         at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:103)
         at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:57)
         at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:100)
         at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:248)
         at org.springframework.test.context.TestContext.loadApplicationContext(TestContext.java:124)
         at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:148)
         ... 27 more
    Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'loginService' for bean class [cn.at.service.LoginService] conflicts with existing, non-compatible bean definition of same name and class [cn.at.service.LocationService]
         at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.checkCandidate(ClassPathBeanDefinitionScanner.java:312)
         at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:253)
         at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:84)
         at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73)
         at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1435)
         at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1425)
         at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:184)
         at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140)
         at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111)
         at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
         at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
         ... 40 more

    2 解决思路

        A排除扫描Spring MVC的配置文件  聊天记录

        B最后发现是类冲突导致的错误

    测试类配置
    10:16:16 PM
    Questions张 12/22/2014 10:16:16 PM
    
    是不是 扫描路径不对啊
    
    XX翔 12/22/2014 10:17:04 PM
    
    单元测试不应该加载 spring-mvc的配置,因为你没有request等对象
    
    XX翔 12/22/2014 10:17:17 PM
    
    没servlet等一些环境
    
    Questions张 12/22/2014 10:17:33 PM
    
    我是不是把location去掉
    
    Questions张 12/22/2014 10:18:05 PM
    
    只加载bean。xml
    
    Questions张 12/22/2014 10:18:09 PM
    
    就可以了
    
    是不是 扫描路径不对啊
    
    XX翔 12/22/2014 10:17:04 PM
    
    单元测试不应该加载 spring-mvc的配置,因为你没有request等对象
    
    XX翔 12/22/2014 10:17:17 PM
    
    没servlet等一些环境
    
    Questions张 12/22/2014 10:17:33 PM
    
    我是不是把location去掉
    
    Questions张 12/22/2014 10:18:05 PM
    
    只加载bean。xml
    
    Questions张 12/22/2014 10:18:09 PM
    
    就可以了
    
    XX翔 12/22/2014 10:18:14 PM
    
    是的
    10:18:32 PM
    Questions张 12/22/2014 10:18:32 PM
    
    我试试
    
    XX翔 12/22/2014 10:18:35 PM
    
    如果需要测action的话,需要采用 mock
    
    XX翔 12/22/2014 10:19:10 PM
    
    spring-test 中 有mock测试的方法,你百度下
    
    Questions张 12/22/2014 10:19:45 PM
    
    恩
    10:24:28 PM
    Questions张 12/22/2014 10:24:28 PM
    
    Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'loginService' for bean class [cn.at.service.LoginService] conflicts with existing, non-compatible bean definition of same name and class [cn.at.service.LocationService]
    
    Questions张 12/22/2014 10:24:34 PM
    
    这个是原因吧
    
    Questions张 12/22/2014 10:25:18 PM
    
    其实 是载入spring文件配置时  扫描注解
    
    Questions张 12/22/2014 10:25:26 PM
    
    发现有些类无法注入
    
    Questions张 12/22/2014 10:25:31 PM
    
    所以就抛出这个错误
    
    org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'loginService' for bean class [cn.at.service.LoginService] conflicts with existing, non-compatible bean definition of same name and class [cn.at.service.LocationService]
    
    最后结果 是XXXX没有更新 导致类有冲突 所以没有解决掉 这个错误 
  • 相关阅读:
    准备工作:安装Arduino驱动(Windows)
    关于osEye的URL设计
    Debian 6.0下安装Memcached
    准备工作:购买Arduino
    debian6.0安装后中文字体显示不正常的解决办法
    取消UL和OL符号以及padding和margin后恢复默认值的CSS
    linux中reboot、shutdown、halt等命令详细讲解
    IIS6中应用程序池和Web园,解决Session丢失问题
    [z]C# winForm 程序调用 Java WebService
    [z]HTMLTextBox
  • 原文地址:https://www.cnblogs.com/QuestionsZhang/p/10312778.html
Copyright © 2020-2023  润新知