今天刚刚学了SpringMVC,出现了这个问题,来解决一下。
这个问题就是因为JDK版本和Spring的版本冲突导致的。
我使用的是JDK17,版本比较高,需要相应的包进行支持。
直接上依赖吧。
最终我使用的就是下面两个。使用这两个可以说跑起来没有什么问题,如果更改不适当可能仅仅只能解决我文章标题的问题,接着又出现其它的问题。比如java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet,如果出现这个问题就看看下面那个依赖的问题,改改总能搞定的。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.23</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
同样还需要注意的是Tomcat的版本。我使用的是Tomcat9,之前也用过7、8、10,但最终还是选择了9。Tomcat版本最好也多注意一下,说不定什么时候就给你冒出个奇奇怪怪的问题。
然后附上一下相应包的对应版本:
Spring:
![](https://img-blog.csdnimg.cn/img_convert/c52bc43efc676ebf6de5947dde8e8085.png)
地址:https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-Versions
Servlet:
![](https://img-blog.csdnimg.cn/img_convert/29fb4e4d095283480858b85b9266b9fc.png)
地址:https://tomcat.apache.org/whichversion.html
按照上面的图中的版本对应关系更改自己的,最后应该都是能够成功的。如果报错的时候是一些奇奇怪怪的问题,不妨先考虑一下自己的版本有没有问题。
最后再附上一下maven中央仓库的地址,也许能用上。