Spring-applicationContext.xml不存在,无法打开

Spring-applicationContext.xml不存在,无法打开,spring,spring-mvc,junit,Spring,Spring Mvc,Junit,我有一个SpringMVC应用程序,JUnit测试与applicationContext.xml文件相结合存在问题 在我的JUnit测试类中,我编写: final ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); service = (TestServiceImpl) context.getBean("testServiceImpl"); 我得到的错误是找不到ap

我有一个SpringMVC应用程序,JUnit测试与applicationContext.xml文件相结合存在问题

在我的JUnit测试类中,我编写:

final ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
service = (TestServiceImpl) context.getBean("testServiceImpl");
我得到的错误是找不到aplicationContect.xml:

org.springframework.beans.factory.BeanDefinitionStoreException:IOException解析来自类路径资源[applicationContext.XML]的XML文档;嵌套异常为java.io.FileNotFoundException:无法打开类路径资源[applicationContext.xml],因为它不存在

但它存在于WEB-INF文件夹中


那么,这里怎么了?为什么JUnit测试的文件不存在?

类路径XmlApplicationContext在
WEB-INF
文件夹中找不到
applicationContext.xml
,它不在类路径上。运行测试时,您可以将应用程序上下文复制到类路径中(可以将其放在
src/test/resources
下,并让Maven将其复制过来)。

您应该将Spring文件保存在另一个文件夹中,标记为“source”(就像“src”或“resources”)

WEB-INF不是源文件夹,因此它不会包含在类路径中(即JUnit不会在那里查找任何内容)。

我也遇到了同样的错误。 我解决了这个问题,将文件
applicationContext.xml
移动到

src
文件夹的子文件夹。e、 g:

context = new ClassPathXmlApplicationContext("/com/ejemplo/dao/applicationContext.xml");

我将applicationContext.xml放在src/main/java文件夹中,它工作了

如果使用maven,在主目录中创建一个名为
resources
的目录,然后将
applicationContext.xml
复制到其中

 AbstractApplicationContext context= new ClassPathXmlApplicationContext("spring-config.xml");
从java代码调用:

ApplicationContext appCtx = new ClassPathXmlApplicationContext("applicationContext.xml");

我也发现了这个问题。要解决这个问题,我们要做的是在任何地方复制/粘贴这个文件,然后一次运行一个文件。最后,它编译并运行成功,然后删除不必要的部分。在我的情况下,正确的位置是:

这在/src/path下(我使用intellijidea作为IDE)。其他java源文件位于/src/com/package/path下


希望对您有所帮助。

我通过在src文件夹中移动文件spring-context.xml解决了这个问题。
ApplicationContext context=new ClassPathXmlApplicationContext(“spring context.xml”)

在Spring中,所有源文件都在src/main/java中。 类似地,资源通常保存在src/main/resources中。 因此,请将您的spring配置文件保存在resources文件夹中

确保在src/main/resources中也有文件的类路径条目

在.classpath中检查以下两行。如果它们丢失,请添加它们

<classpathentry path="src/main/java" kind="src"/>
<classpathentry path="src/main/resources" kind="src" />

因此,如果您已经准备好了所有的东西,下面的代码应该可以工作


ApplicationContext ctx=新类路径XmlApplicationContext(“Spring Module.xml”)

请执行此代码-它起作用了

 AbstractApplicationContext context= new ClassPathXmlApplicationContext("spring-config.xml");

o/w:删除主方法类并在重新创建时重新创建它。请取消选中继承的抽象方法,因为它是有效的 出于某种原因(eclipse bug??)“excluded”参数得到一个值**(my resources文件夹的构建路径)

只需将排除更改为无(请参见红色矩形与绿色矩形) 我希望这能对将来的人有所帮助,因为这让我很沮丧


我正在使用Netbeans,我通过将文件放入:Other Sources默认包解决了我的问题,然后我这样调用它:

ApplicationContext context=new ClassPathXmlApplicationContext(“bean.xml”)


我通过将applicationContext.xml添加到Maven项目的jar/target/test类中修复了它。和使用

        XmlBeanFactory bf = new XmlBeanFactory( new ClassPathResource(
                "/applicationContext.xml", getClass() ) )
而不是

        XmlBeanFactory bf = new XmlBeanFactory( new ClassPathResource(
                "/WEB-INF/applicationContext.xml", getClass() ) )

在使用Maven时遇到了同样的问题,然后我将XML文件放到
src/main/java
路径中,它就工作了

ApplicationContext context=new ClassPathXmlApplicationContext("spring.xml");

单击
src/main/java
文件夹,右键单击并创建xml文件。如果在
/
以外的子包中创建
application.xml
文件,则该文件将不起作用

知道你的结构是这样的吗

package/
|  subpackage/
   | Abc.java
   | Test.java

/application.xml

实际上,您需要了解
ApplicationContext
。它是一个接口,根据配置有不同的实现

当您使用新的ClassPathXmlApplicationContext(“applicationContext.xml”)时,请注意开头的右侧,上面写着ClassPathXmlApplicationContext,因此XML必须出现在类路径中。 因此,将您的applicationContext.xml拖到任何地方,直到src文件夹

要点:新类路径XmlApplicationContext作为名称 [ClassPathXml]将在您的应用程序的src文件夹中查找xml文件 项目,所以只将xml文件拖到那里

ClassPathXmlApplicationContext
-从XML加载上下文定义 文件位于类路径中,将上下文定义文件视为类路径 资源

FileSystemXmlApplicationContext
-从XML加载上下文定义 文件系统中的文件

XmlWebApplicationContext
-从包含的XML文件加载上下文定义 在web应用程序中。

您的模块/src/applicationContext.xml
just change the containing package of your applicationContext.xml file.
 applicationContext.xml must be in src package not in your project package.
 e.g. 
     src(main package)
         com.yourPackageName(package within src)
         classes etc.
     applicationContext.xml(within src but outside of yourPackage or we can say 
                            parallel to yourPackage name)
检查目录路径,默认路径是
/src/
,而不是
/

德国劳埃德船级社

几个小时以来,我一直在为这个问题苦苦挣扎,因为我把那个文件放在了resources文件夹下,但这对我没有帮助,最后我意识到了我的错误。
将它直接放在src/main/java下。

我在处理一个maven项目时遇到了同样的问题,因此我在
src/main/java
中重新创建了配置文件
spring.xml
,它对我有效。

我的解决方案
如果您没有文件夹WEB-INF,请将文件applicationContext.xml放入文件夹中