org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [springmvc-servlet.xml]; nested exception is java.io.FileNotFoundException:
class path resource [springmvc-servlet.xml] cannot be opened because it does not exist
看起来是springmvc-servlet.xml这个路径的配置问题,
但是左看右看也没看出哪里不对,配置代码如下
<servlet>
<servlet-name>Springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--通过初始化参数指定SpringMVC配置文件的位置,进行关联-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<!-- 启动顺序,数字越小,启动越早 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
controller类如下:
@Controller
public class HelloController {
@RequestMapping("/h1")
public String hello(Model model){
//封装数据,利用model
model.addAttribute("msg","hello,springmvc");
return "hello";//这个用于给视图解析器处理,用于拼接跳转
}
}
运行http://localhost:8080/springMVC_03_annotation_war_exploded/h1 就会报错HTTP500.
于是很奇怪,不使用注解运行的时候明明可以的,后来发现中间改过一次子模块module的名字但是自己忘了,
在pom.xml中<modules><module>xxxxxx</module></modules>里面还报红呢 ,显示的还是改之前的名字,于是换成新module的名字即可(表层看不出来,甚至显示build success迷惑你)
总结:我这个错应该算是偶然出现的,蠢哭自己了hh(自己给自己写bug),所以解决办法仅供参考,毕竟网上大多数这类500的问题应该是版本问题或者路径问题造成的。