今天发布项目的时候,总是报这个错误,如下图:
解决办法:
在web.xml中,添加context-param:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</context-param>
我之前是这样配置的,(前几天还没有报这样的错误,今天却总是报错):
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
</servlet>
但是不行,那么<init-param>和<context-param>有什么不同呢?总结如下:
1.<context-param>是application范围内的参数,存放在servletcontext中;
2.<init-param>是servlet范围内的参数,只能在servlet的init()方法中取得。
也就是说,context-param是全局的,它在项目启动的时候,tomcat就会读取web.xml中的listener和context-param这两个节点,然后就会加载关于spring的配置文件。
而init-param加载会延迟一些,所以有时候会报错,找不到该文件。
也请大家给予指正。