问题描述
- 项目在tomcat8可以启动成功,请求也可以正常处理,在tomcat10上只有部署成功信息比如: deployWAR Deployment of web application archive [/data1/WWW/webapps/XXX.war] has finished in [127] ms, 但是没有springboot启动的信息。
- 该问题 不属于springboot打包为war包不成功问题 ,既然在tomcat8上能正常启动,说明和 SpringBootServletInitializer、排除内置tomcat等都无关 。
- 因此,该问题可能是tomcat8和tomcat10以及Java版本的问题相关。原来的项目是jdk1.8 + springboot 2.6.11 + tomcat8,由于tomcat8的漏洞问题,需要升级到tomcat10。我猜测是由于Java版本不一致问题,都设置为11,但是也不起作用。
解决方案
- https://github.com/apache/tomcat-jakartaee-migration,该工具是让 转换tomcat8、9上基于JavaEE8编写的web应用,让其可以在基于Jakarta EE9实现的tomcat10上运行。
- 下载地址:https://tomcat.apache.org/download-migration.cgi,或者:
wget https://dlcdn.apache.org/tomcat/jakartaee-migration/v1.0.8/binaries/jakartaee-migration-1.0.8-bin.zip
- unzip文件,进入 `jakartaee-migration-1.0.8-bin/jakartaee-migration-1.0.8/lib/,将自己的war包放在相同目录下。执行:
java -jar jakartaee-migration-1.0.8.jar 你的应用.war /目标生成路径/你的应用.war
随后,在目标路径会有一个新的war包,将该war包放到tomcat10的webapps下,重新启动bin/startup.sh,查看logs/catalina.out,如果你的日志有如下面的信息,代表启动成功:
标签:jakartaee,springboot,tomcat10,migration,日志,war,tomcat8 From: https://www.cnblogs.com/80sVolxxxx/p/18343516