org.springframework.web.servlet.DispatcherServlet’ is not assignable to javax.servlet.Servlet
1、pom.xml配置
<dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>6.0.0</version> <scope>provided</scope> </dependency>
2、web.xml报错
因为tomcat9配置的是javax.servlet-api,升级到tomcat10后,依赖需要改成jakarta.servlet-api,然后spring相关版本也需要升级到6.x.x才行。
3、无法访问org.springframework.context.annotation.xxx
类文件具有错误的版本 61.0, 应为 52.0
请删除该文件或确保该文件位于正确的类路径子目录中。
因为spring6.0升级后所依赖的jdk需要升级到17及以上,与本地的jdk版本不一致,所以要么再升级jdk,要么降低spring及上述版本到低版本。
类文件与jdk的版本依赖:
https://stackoverflow.com/questions/9170832/list-of-java-class-file-format-major-version-numbers
4、升级SDK后Resource注解失效(原来是1.8,升级到17)
方法①:替换成Inject
<!-- https://mvnrepository.com/artifact/javax.inject/javax.inject -->
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
方法②:添加pom依赖
<!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
方法③:替换成springframework自带的Autowired
引用:https://blog.csdn.net/weixin_43091089/article/details/128076622
标签:jdk,jakarta,Tomcat10,升级,api,servlet,javax From: https://www.cnblogs.com/smallfa/p/17402228.html