为什么升级到tomcat 10.0.5会导致spring启动在启动后关闭?

mec1mxoz  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(362)

我有一个spring boot项目,我正在尝试使用Tomcat10嵌入式而不是Tomcat7。。。

<properties>
    <tomcat.version>10.0.5</tomcat.version>
    ...
</properties>

然后我运行与之前相同的命令。。。

mvn clean package -U && java -cp target\my.jar;props -Dloader.main=com.my.Main org.springframework.boot.loader.PropertiesLauncher

但现在它只是启动然后自动关闭。最后的消息是。。。

2021-05-13 15:35:42.105  INFO 10084 --- [           main] com.my.Main                   : Started Main in 42.918 seconds (JVM running for 44.009)
2021-05-13 15:35:42.190  INFO 10084 --- [extShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'

为什么会发生这种情况?如何升级而不产生这种副作用?

jrcvhitl

jrcvhitl1#

Tomcat10是一个jakarta ee 9 servlet容器。这基本上意味着 javax.* 包被重命名为 jakarta.* 由于版权原因(Oracle不允许Eclipse基金会使用 javax.* 姓名)。
SpringBoot2和Spring5只支持以前的JavaEE8规范,您需要等待SpringBoot3和Spring6来获得Tomcat10支持。或者,您可以通过ApacheTomcat迁移工具传递spring库,该工具刚刚达到版本1.0或降级到tomcat 9.0。

另见

Tomcat10.0.4没有加载带有404错误的servlet(@webservlet类)

相关问题