找不到applicationContext.xml,请问大家,这是怎么回事啊。。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了找不到applicationContext.xml,请问大家,这是怎么回事啊。。相关的知识,希望对你有一定的参考价值。

在Src/com/topera/psm/config/目录下有applicationContext.xml
在WEB-INF目录下有web.xml,在web.xml中配置:

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:com/topera/psm/config/applicationContext.xml</param-value>
</context-param>

在启动Tomcat时报错,我是在IntelliJ IDEA工具下
[Unison] ERROR [main] ContextLoader.initWebApplicationContext(203) | Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException:IOException parsing XML document from class path resource [com/topera/psm/config/applicationContext.xml]; nested exceptionis java.io.FileNotFoundException: class path resource [com/topera/psm/config/applicationContext.xml] cannot be opened because it does not exist

求求各位帮帮忙啦,我的配置应该没错,路径也没有错,但是启动Tomca 6 的时候却出现此错误,怎么办啊。。谢谢各位帮小弟一把了。

初学Spring在用Resource rs=new ClassPathResource("applicationContext.xml"),出现文件找不到的问题,或者你在new ClassPathResource("F://...//applicationContext.xml"),一样会出现找不到的情况。

原因:

ClassPathResource中找不到applicationContext.xml是因为这个xml文件在建工程的时候默认放在了 WebContent/WEB-INF/下面,但是用ClassPathResource是在当前目录也就是这个java文件所在的目下进行寻找。

解决方法:

    方法一:把这个xml文件移动到src目录下面就ok了。

    方法二:如果用FileSystemXmlApplicationContext呢,它是根据指定的路径来进行寻找,所以要把路径写完整。现在xml路径在 src文件夹下。那就要写:

ApplicationContext ctx=new FileSystemXmlApplicationContext("src/applicationContext.xml");

这是比较直接简单的写法。对于FileSystemXmlApplicationContext也可以采用:


1.加上classpath:前缀(这个时候xml要放在当前目录也就是src下)
ApplicationContext ctx=new FileSystemXmlApplicationContext("classpath:applicationContext.xml");


2.加上file:把路径写全(用这个方法xml可以放任意地方)


ApplicationContext ctx=new ClassPathXmlApplicationContext("ApplicationContext ctx=new ClassPathXmlApplicationContext("file:F:/workspace/SpringExercis/src/applicationContext.xml");

参考技术A l放到/WEB-INF/classes目录下使用
new ClassPathXmlApplicationContext("applicationContext.xml"); 来读取!

如果是在Web.xml中的话,需要配置Context Listener:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
然后使用context-param指定配置文件的位置(可选,默认读取
/WEB-INF/applicationContext.xml)
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>

最后使用WebApplicationContextUtils.getWebApplicationContext(servletContext)
在Servlet中获取容器的引用。本回答被提问者采纳

eclipse中Spring创建applicationContext.xml后程序却找不到该文件

今天在创建eclipse创建 spring ioc容器后运行示例发现出现了这条错误信息

class path resource [applicationContext.xml] cannot be opened because it does not exist

网上有很多解决办法我都尝试了,比如

1、clean一下project

2、最常见的原因是applicationContext.xml文件创建的位置不对,无法找到class文件,应该将该文件放在src目录下

3、但是我试过后都不行,最后将该文件移动到类的包下再移出来就好了......

 

以上是关于找不到applicationContext.xml,请问大家,这是怎么回事啊。。的主要内容,如果未能解决你的问题,请参考以下文章

在 applicationContext.xml 中找不到 Spring 配置资源

找不到applicationContext.xml,请问大家,这是怎么回事啊。。

我有 WEB-INF/applicationContext.xml 但应用程序找不到它

applicationContext 找不到 Servlet 上下文的控制器

eclipse中Spring创建applicationContext.xml后程序却找不到该文件

IDEA找不到配置文件cannot resolve file applicationContext.xml