第一個問題
1
2
|
java.lang.ClassCastException: org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer |
出現原因主要是 javax.servlet-api 在運行時將spring容器當成了servlet容器出現類型轉換錯誤。
解決方法:
在pom.xml文件中修改 javax.servlet-api 的作用域為provided
1
2
3
4
5
6
|
< dependency > < groupId >javax.servlet</ groupId > < artifactId >javax.servlet-api</ artifactId > < version >3.1.0</ version > < scope >provided</ scope > </ dependency > |
第二個問題:
1
|
Could not resolve bean definition resource pattern [classpath:spring/applicationContext-*.xml] |
在SSM項目中,由于有 mapper映射文件和一些其他的配置文件,在maven項目中需要被識別,所以會加上一下配置,允許這些靜態文件通過,
1
2
3
4
5
6
7
8
9
10
|
< resources > <!-- 如果不添加此節點mybatis的mapper.xml文件都會被漏掉。 --> < resource > < directory >src/main/java</ directory > < includes > < include >**/*.properties</ include > < include >**/*.xml</ include > </ includes > < filtering >false</ filtering > </ resource > |
但是以上配置修改了默認的resource目錄,導致src/main/resources的所有文件都不能被掃描,也就出現了其他在resources目錄下的文件不能被掃描的錯誤,所以需要加上默認的resources 目錄配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
< build > < resources > <!-- 如果不添加此節點mybatis的mapper.xml文件都會被漏掉。 --> < resource > < directory >src/main/java</ directory > < includes > < include >**/*.properties</ include > < include >**/*.xml</ include > </ includes > < filtering >false</ filtering > </ resource > < resource > < directory >src/main/resources</ directory > < includes > < include >**/*.properties</ include > < include >**/*.xml</ include > </ includes > < filtering >false</ filtering > </ resource > </ resources > </ build > |
以上這篇解決maven啟動Spring項目報錯的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:http://blog.csdn.net/sinat_25295611/article/details/78914818