关于SpringMVC项目报错:java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/xxxx.xml]
关于SpringMVC项目报错:java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/xxxx.xml]
问题描述:
在搭建SpringMVC项目时,使用多个Spring配置文件,这里我在web.xml中配置spring的配置文件:
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
然后再spring-mvc.xml配置文件中又使用<import>标签导入其他的配置文件:applicationContext.xml,导入代码如下:
<import resource="./applicationContext.xml"/>
其中我将两个spring配置文件都放在resources下的spring文件夹下,文件结构如下:
|---resources
|---spring
|---spring-mvc.xml
|---applicationContext.xml
此时在项目执行时报错:
java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
解决办法
看到这个错误,我是不相信的,我检查了我的spring-mvc.xml文件,确定我使用是相对路径,并没有什么问题,于是到网上查资料,说使用spring配置文件路径填写的不对,推荐使用:classpath:或者classpath*:,分别使用这两种方式在<import>中改写applicationContext.xml的路径,可以是依然报FileNotFoundException,我十分确定我填写的路径没有问题,但是一直报错就十分奇怪,我观察报错的路径:
Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
项目在运行是是直接去WEB-INF找applicationContext.xml文件,我查看项目运行时target文件夹,找到这是applicationContext.xml配置文件在:
/WEB-INF/classes/spring/applicationContext.xml
下,于是我将applicationContext.xml放到WEB-INF下在执行,发现没有的报错了,说明项目在运行时<import>根本没有起到应有的作用,系统依然走的是默认到WEB-INF目录下找的配置文件,这显然不是我要的效果,就在我最抓狂的时候,我发现我的web.xml少了几行配置:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/spring-mvc.xml</param-value>
</context-param>
抱着试一试的想法,我将这一行配置加上,运行项目后顺利运行
......
......
......
(╯‵□′)╯︵┻━┻
总结
经过这一次的教训,发现做事的时候还是不够细心,这里我在晚上寻找解决办法是有关这个问题需要注意的地方列一下:
- 经过多方资料的对比,在设置spring配置文件时,建议使用classpath而不是classpath*貌似会因为这个问题报错,我暂时没有遇到过
- 在配置文件wen.xml中使用
<context-param>配置contextConfigLocation变量,我就是犯了这个错误 - 配置文件名一定要写写对,这种属于最低级也是最容易忽略的错误
另外如果有什么其他问题,或者错误的地方,希望大家提出宝贵的意见,谢谢
参考资料
http://blog.csdn.net/lee0723/article/details/18223749
http://perfy315.iteye.com/blog/2009258
http://blog.csdn.net/zwx_20092029/article/details/39229971
关于SpringMVC项目报错:java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/xxxx.xml]的更多相关文章
- Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/config/spring/applicationContext.xml]
在搭建SpringMVC框架的时候遇到了这个问题 问题的原因: 就是没有找到applicatoincontext.xml这个文件, 因为idea自动生成的路径不正确 因此需要再web.xml里面, ( ...
- 文件上传报错java.io.FileNotFoundException拒绝访问
局部代码如下: File tempFile = new File("G:/tempfileDir"+"/"+fileName); if(!tempFile.ex ...
- 完美解决JavaIO流报错 java.io.FileNotFoundException: F:\ (系统找不到指定的路径。)
完美解决JavaIO流报错 java.io.FileNotFoundException: F:\ (系统找不到指定的路径.) 错误原因 读出文件的路径需要有被拷贝的文件名,否则无法解析地址 源代码(用 ...
- 出错: IOException parsing XML document from ServletContext resource [/cn.mgy.conig]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/cn.mgy.conig]
错误的详细内容: 严重: StandardWrapper.Throwable org.springframework.beans.factory.BeanDefinitionStoreExceptio ...
- IOException parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/app
web.xml初始化spring容器出错 org.springframework.beans.factory.BeanDefinitionStoreException: IOException par ...
- 关于spark入门报错 java.io.FileNotFoundException: File file:/home/dummy/spark_log/file1.txt does not exist
不想看废话的可以直接拉到最底看总结 废话开始: master: master主机存在文件,却报 执行spark-shell语句: ./spark-shell --master spark://ma ...
- Spark启动报错|java.io.FileNotFoundException: File does not exist: hdfs://hadoop101:9000/directory
at org.apache.spark.deploy.history.FsHistoryProvider.<init>(FsHistoryProvider.scala:) at org.a ...
- Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/dispatcher-servlet.xml]
这是因为我把 [/WEB-INF/dispatcher-servlet.xml]的位置换成了[config/springmvc/dispatcher-servlet.xml] 因此idea在原来的位置 ...
- idea中编译项目报错 java: javacTask: 源版本 1.8 需要目标版本 1.8
问题如上面所叙: > idea中编译项目报错 java: javacTask: 源版本 1.8 需要目标版本 1.8 解决方案: > Setting->Compiler->Ja ...
随机推荐
- javaScript获取url问号后面的参数
javaScript获取url问号后面的参数方法 function GetRequest() { var url = location.search; //获取url中"?"符后的 ...
- Lettuce_webdriver 自动化测试
这篇文章主要讲解以下几点: 1. Lettuce_webdriver环境搭建 2. lettuce_webdriver自动化实例讲解 一. lettuce_webdriver环境搭建 搭建lettuc ...
- NYOJ--95--multiset--众数问题
/* Name: NYOJ--95--众数问题 Date: 20/04/17 16:02 Description: multiset水过 */ #include<set> #include ...
- js复习---string
对js的string的方法复习: 1.charCodeAt() 返回一个整数,代表指定位置字符串的unicode编码. strObj.charCodeAt(index) index 是处理字符的从零 ...
- Linux配置全局jdk
Linux配置全局jdk 1.确保相应文件夹下有apache-tomcat和jdk的压缩文件 注意:jdk文件必须为适应Linux版本的文件 (如果已经有了相应文件,可以跳过以下第2-3个步骤) 2. ...
- Selenium对于对话框alert,confirm,prompt的处理
html 源码: <html> <head> <title>Alert</titl ...
- Hotkeys.js 2.0.2 发布,捕获键盘输入和输入的组合键快捷键,它没有依赖
这是一个强健的 Javascript 库用于捕获键盘输入和输入的组合键,它没有依赖,压缩只有只有(~3kb),gzip:1.9k. 更新内容: 添加测试用例: 添加更多特殊键支持: 修复bug. __ ...
- Oracle外键需要建索引吗?
关于Oracle中的外键,首先要说明一下. 1. 除非已定义了父表主键或唯一键约束,否则oracle将不允许创建子表的外键约束. 2. 在定义外键约束时,oracle不会自动创建索引,所以必须手动在与 ...
- 一步一步学J2SE-ConcurrentHashMap原理
ConcurrentHshMap的数据结构是由一个Segment数组和多个HashEntry数组组成,在Segement数组中包含了HashEntry数组.数据结构如下图所示: Segement数组的 ...
- iOS - Block底层解析
Block是iOS开发中一种比较特殊的数据结构,它可以保存一段代码,在合适的地方再调用,具有语法简介.回调方便.编程思路清晰.执行效率高等优点,受到众多猿猿的喜爱.但是Block在使用过程中,如果对B ...