关于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-INFapplicationContext.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]的更多相关文章

  1. Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/config/spring/applicationContext.xml]

    在搭建SpringMVC框架的时候遇到了这个问题 问题的原因: 就是没有找到applicatoincontext.xml这个文件, 因为idea自动生成的路径不正确 因此需要再web.xml里面, ( ...

  2. 文件上传报错java.io.FileNotFoundException拒绝访问

    局部代码如下: File tempFile = new File("G:/tempfileDir"+"/"+fileName); if(!tempFile.ex ...

  3. 完美解决JavaIO流报错 java.io.FileNotFoundException: F:\ (系统找不到指定的路径。)

    完美解决JavaIO流报错 java.io.FileNotFoundException: F:\ (系统找不到指定的路径.) 错误原因 读出文件的路径需要有被拷贝的文件名,否则无法解析地址 源代码(用 ...

  4. 出错: 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 ...

  5. 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 ...

  6. 关于spark入门报错 java.io.FileNotFoundException: File file:/home/dummy/spark_log/file1.txt does not exist

    不想看废话的可以直接拉到最底看总结 废话开始: master: master主机存在文件,却报 执行spark-shell语句:  ./spark-shell  --master spark://ma ...

  7. 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 ...

  8. 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在原来的位置 ...

  9. idea中编译项目报错 java: javacTask: 源版本 1.8 需要目标版本 1.8

    问题如上面所叙: > idea中编译项目报错 java: javacTask: 源版本 1.8 需要目标版本 1.8 解决方案: > Setting->Compiler->Ja ...

随机推荐

  1. Hadoop新生报到(一) hadoop2.6.0伪分布式配置详解

    首先先不看理论,搭建起环境之后再看: 搭建伪分布式是为了模拟环境,调试方便. 电脑是win10,用的虚拟机VMware Workstation 12 Pro,跑的Linux系统是centos6.5 , ...

  2. echarts 支持svg格式

    今天研究了下echarts的svg格式.发现用ai生成svg格式的图片,echarts上面显示不了. 经过了多次的百度和谷歌终于找到了用Method Draw画出来的svg格式,echarts就能加载 ...

  3. Learn c for the Second day

    十六进制对应的二进制码 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0       ...

  4. oracle函数和存储过程有什么区别

    oracle函数和存储过程有什么区别 1. 返回值的区别,函数有1个返回值,而存储过程是通过参数返回的,可以有多个或者没有 2.调用的区别,函数可以在查询语句中直接调用,而存储过程必须单独调用. 函数 ...

  5. 第一个简单的python程序,模拟购物车

    第一个pyhone程序,简单的购物车功能,刚开始学习,练习下手感. #/usr/bin/env python#-*- coding:utf-8 -*- salary = int(raw_input(& ...

  6. 再起航,我的学习笔记之JavaScript设计模式08(建造者模式)

    我的学习笔记是根据我的学习情况来定期更新的,预计2-3天更新一章,主要是给大家分享一下,我所学到的知识,如果有什么错误请在评论中指点出来,我一定虚心接受,那么废话不多说开始我们今天的学习分享吧! 前几 ...

  7. Apriori关联分析算法概述

    概念 关联分析:从大规模数据集中寻找物品间的隐含关系.物品间关系又分为两种:频繁项集或关联规则,频繁项集是经常出现一块的物品集合:关联规则则暗示物品间存在很强的联系 关联评判标准:支持度和可信度.支持 ...

  8. MATLAB匹配按列碎开的纸片

    纵向切开的纸片的拼接 2013 CUMCM_B %% paper_cutting.m clear, close all clc %% import pictures, and save into im ...

  9. JavaScript正则表达式检验与递归函数实际应用

    JS递归函数(菲波那切数列) 实例解析: 一组数字:0  1  1  2  3  5  8  13                 0  1  2  3  4  5  6  7 sl(0)=0; sl ...

  10. noip普及组2004 火星人

    火星人 描述 人类终于登上了火星的土地并且见到了神秘的火星人.人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法.这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类 ...