使用工具:idea14,Tomcat 8.0.23
1、之前项目运行的好好的,突然从GitHub上克隆下来后,在idea中打开,运行Tomcat时报错。报错部分源码如下:
04-Mar-2018 00:32:05.636 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.context.ContextLoader.initWebApplicationContext Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
2、经过多次百度之后,终于弄懂了为什么会报这个错了。原因在于工程项目是从github上下载下来的,在本地电脑上时首次运行,看报错代码
nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
可知其大概意思是说:找不到文件applicationContext.xml异常,无法打开该文件路径。这个文件呢就是spring配置文件applicationContext.xml。
其原因有两个:要么就是没用这个文件,要么就是该文件路径错误。
但是我是有这个applicationContext.xml文件的,那么肯定就是路径错误了。
3、最后发现我的web.xml中没有配置该文件的路径,所以把这段代码写到web.xml中:
<!-- 设置Spring的配置文件启动路径 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath*:applicationContext.xml </param-value> </context-param>
注意:在放进去的时候,尽量将此段代码放到靠前位置,因为在tomcat启动后web项目会先初始化上下文,这段配置正是指定了上下文配置的文件位置,在上下文初始化完成之后才应当继续加载其余各种配置,而我们的springMVC的servlet仅仅是springMVC框架的相关配置,就好比struts2的配置一样,项目整体还是由spring去管理的。
本人新入菜鸟一枚,若有不足,还请各位大神多多指点