今天在学习springmvc的时候发现了一个关系冲突的问题,首先我不是大神,我只是一个初学者。
问题是由javax和jakerta引出来的。我的tomcat版本是9,jdk是17,spring是6.0.11,然后tomcat9使用的应该还是javax,但是在使用spring自己封装好的WebApplicaitonUtils的 getWebApplicationContext方法去优化代码,让一些读取配置文件的写法不会被写死,这个方法呢需要传一个servletContext对象,我自己创建这个对象之后将它传入方法里面却提示我传入的类型有误,他需要一个jakerta.servlet.ServletContext而不是javax.servlet.ServletContext。
好好好,竟然问题出来了,那么我们就可以去解决了,经过不断的沉浸式搜索,才明白,spring6需要的版本最低都是17,我刚好符合,在最后我在tomcat上找到了自认为是问题的所在。
首先,spring6的可用版本:
-
Java 17+(目前 Spring Framework 5.3.x 的基线是 Java 8-17)
-
Jakarta EE 9+(目前 Spring Framework 5.3.x 的基线是 Java EE 7-8)
而tomcat9却是绑定Java EE8 ,在这里就有冲突了,于是我果断的将我的tomcat换成了10,并且将pom文件中的对应依赖换成了jakerta文章来源:https://www.toymoban.com/news/detail-759912.html
<!--tomcat10(包括10)之后需要的依赖--> <!--jsp的依赖--> <dependency> <groupId>jakarta.servlet.jsp</groupId> <artifactId>jakarta.servlet.jsp-api</artifactId> <version>3.0.0</version> <scope>provided</scope> </dependency> <!--jar包的依赖--> <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>5.0.0</version> <scope>provided</scope> </dependency>
然后在windows将tomcat配置改成10的,idea重新导入tomcat,最后问题就解决了 文章来源地址https://www.toymoban.com/news/detail-759912.html
到了这里,关于java: 无法访问jakarta.servlet.ServletContext 找不到jakarta.servlet.ServletContext的类文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!