Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ContextConfiguration引发java.io.FileNotFoundException:_Java_Spring_Unit Testing_Testing - Fatal编程技术网

ContextConfiguration引发java.io.FileNotFoundException:

ContextConfiguration引发java.io.FileNotFoundException:,java,spring,unit-testing,testing,Java,Spring,Unit Testing,Testing,我正在为我的spring应用程序编写一些测试 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:/../../main/resources/spring-config.xml") public class MitarbeiterSystemTest { @Autowired private ApplicationContext context; ... } 该文件

我正在为我的spring应用程序编写一些测试

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:/../../main/resources/spring-config.xml")
public class MitarbeiterSystemTest {
      @Autowired
      private ApplicationContext context;
      ...
}
该文件的路径完全正确,它甚至显示了绿色的Spring徽标,当我单击它时,我立即看到了该文件

但当我运行测试时,仍然会出现以下异常:

java.lang.IllegalStateException: Failed to load ApplicationContext
    at org.springframework.test.context.CacheAwareContextLoaderDelegate.loadContext(CacheAwareContextLoaderDelegate.java:99)
    at org.springframework.test.context.DefaultTestContext.getApplicationContext(DefaultTestContext.java:101)
    at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:109)
    at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:75)
    at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:331)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:213)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:290)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:292)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:233)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:87)
    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:176)
    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: IOException parsing XML document from class path resource [../../main/resources/spring-config.xml]; nested exception is java.io.FileNotFoundException: class path resource [../../main/resources/spring-config.xml] cannot be opened because it does not exist
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:343)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:216)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:187)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:251)
    at org.springframework.test.context.support.AbstractGenericContextLoader.loadBeanDefinitions(AbstractGenericContextLoader.java:253)
    at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:122)
    at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
    at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:100)
    at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:250)
    at org.springframework.test.context.CacheAwareContextLoaderDelegate.loadContextInternal(CacheAwareContextLoaderDelegate.java:64)
    at org.springframework.test.context.CacheAwareContextLoaderDelegate.loadContext(CacheAwareContextLoaderDelegate.java:91)
    ... 28 more
Caused by: java.io.FileNotFoundException: class path resource [../../main/resources/spring-config.xml] cannot be opened because it does not exist
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:329)
    ... 40 more
重要的一点可能是:

org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [../../main/resources/spring-config.xml]; nested exception is java.io.FileNotFoundException: class path resource [../../main/resources/spring-config.xml] cannot be opened because it does not exist

我真的很难找到对此的解释,因为IDE能够解析路径,它实际上应该是正确的路径。

假设
/../../../main/resources
指的是
src/main/resources
应该在类路径上,尝试使用

@ContextConfiguration("classpath:spring-config.xml")

假设
/../../main/resources
引用的
src/main/resources
应位于类路径上,请尝试使用

@ContextConfiguration("classpath:spring-config.xml")

假设
/../../main/resources
引用的
src/main/resources
应位于类路径上,请尝试使用

@ContextConfiguration("classpath:spring-config.xml")

假设
/../../main/resources
引用的
src/main/resources
应位于类路径上,请尝试使用

@ContextConfiguration("classpath:spring-config.xml")

仔细检查src/main/resources是否是您的源程序包

您还可以使用基于java的配置,如下所示

@Configuration
@EnableAspectJAutoProxy
@EnableTransactionManagement
@EnableJpaRepositories(basePackages="com.company.dao")
public class JPAConfiguration {

...

}
并将下面提到的地方放在弹簧试验课上

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={JPAConfiguration.class})
public class MyTest {
...
}

仔细检查src/main/resources是否是您的源程序包

您还可以使用基于java的配置,如下所示

@Configuration
@EnableAspectJAutoProxy
@EnableTransactionManagement
@EnableJpaRepositories(basePackages="com.company.dao")
public class JPAConfiguration {

...

}
并将下面提到的地方放在弹簧试验课上

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={JPAConfiguration.class})
public class MyTest {
...
}

仔细检查src/main/resources是否是您的源程序包

您还可以使用基于java的配置,如下所示

@Configuration
@EnableAspectJAutoProxy
@EnableTransactionManagement
@EnableJpaRepositories(basePackages="com.company.dao")
public class JPAConfiguration {

...

}
并将下面提到的地方放在弹簧试验课上

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={JPAConfiguration.class})
public class MyTest {
...
}

仔细检查src/main/resources是否是您的源程序包

您还可以使用基于java的配置,如下所示

@Configuration
@EnableAspectJAutoProxy
@EnableTransactionManagement
@EnableJpaRepositories(basePackages="com.company.dao")
public class JPAConfiguration {

...

}
并将下面提到的地方放在弹簧试验课上

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={JPAConfiguration.class})
public class MyTest {
...
}

试试
@ContextConfiguration(“classpath:/spring config.xml”)
试试
@ContextConfiguration(“classpath:/spring config.xml”)
试试
@ContextConfiguration(“classpath:/spring config.xml”)