此问题已在此处有答案:
Tomcat is looking for javax.servlet.Filter but I have jakarta.servlet.Filter [duplicate](1个答案)
3天前关闭。
我目前正在尝试将一个项目从Java 8迁移到Java 17,并将Sping Boot 2.7迁移到3.1。我在最新的Apache Struts 2 Core(6.2.0)中遇到了对javax.servlet
包的依赖。我想知道我是否能以某种方式使项目在JVM 17上工作?
我尝试编译该项目,但没有成功-编译器显示cannot access javax.servlet.*
1条答案
按热度按时间xfyts7mz1#
cannot access javax.servlet.*
错误不是由使用Java 11 / 17导致的。之所以会发生这种情况,是因为当您切换到Sping Boot 3.1时,您已经(隐式地)从Java EE规范切换到了Jakarta EE 9。
javax.servlet.*
包已被重命名为jakarta.servlet.*
(有多种工具和指南可以帮助您将普通servlet代码从Java EE迁移到Jakarta EE,但我认为这对您没有帮助。)Struts 2也受到Java EE -> Jakarta EE问题的影响(困扰)。遗憾的是,Struts 6.x不支持Jakarta EE 9。根据Struts的问题WW-5141,Struts团队的目标是在7.0.0里程碑中支持Jakarta EE 9。
总的来说: