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的问题应该是版本问题或者路径问题造成的。