昨天23点给一个老项目改完打包发布到云服务器后报错,Tomcat9 启动不了,白折腾了我几个小时。

这错误以前遇到过,由于太过久远已经忘记,特此记录

错误日志

22-Dec-2021 23:52:18.703 SEVERE [main] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive [/usr/tomcat/webapps/project.war]
java.lang.IllegalStateException: Error starting child
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:731)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:696)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1024)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1911)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:825)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:475)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1618)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:948)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1388)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:921)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:263)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:437)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:934)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/project]]
at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:728)
... 37 more

过程

我的环境是 CentenOS7 + Tomcat9 + jdk8 + Springboot2.*

报错后我在网上查了很多资料,解决办法五花八门

然并卵,大部分帖子一如既往的废话。

网上纷纭

1、有说改 JAVA_HOME 下 jre/lib 下某个和随机数相关的配置 (改了,没用)

2、有说换 Tomcat 大版本的(没试过、麻烦)

3、有说改 Tomcat conf 下 c..  某某配置文件的 (一看就没用)

4、有说 jdk 低了的 (我的是1.8,所以不可能)

5、有说 Spring***框架相关环境版本不一致的(只要在编辑器里能跑一般不存在)

5、一个靠谱点的帖子: Tomcat/conf/server.xml 里面 Host 节点下 Context 节点的 docBase 属性对应的项目错误 (这个有可能,但我的没问题)

解决办法

最终! 我看到了一个评论(评论:考虑是否重复打包),一下子茅塞顿开,想起了以前是怎么解决的。

三下五除二!清空了 target 文件夹,再次打包,发布,成功!

最新文章

  1. 【GoLang】类型和作用在它上面定义的方法必须在同一个包里定义
  2. Java开发中经典的小实例-(比较输入数值的最大值、最小值和平均值)
  3. [iOS] 使用xib做为应用程序入口 with Code
  4. SQL语句创建数据库,SQL语句删除数据库,SQL语句创建表,SQL语句删除表,SQL语句添加约束,SQL语句删除约束
  5. 设计模式之装饰模式(Decorator)
  6. Android RecyclerView使用详解(二)
  7. linux字符设备驱动学习笔记(一):简单的字符设备驱动
  8. Java-Web监听器
  9. hdu2034java
  10. shell 验证ip
  11. djiango的模板语言(template)
  12. js密码修改显示与隐藏效果
  13. Struts框架(6)---action接收请求参数
  14. H5 56-还原字体和字号
  15. 无损录制acestream直播流
  16. [mybatis-spring]sqlSessionFactoryBean
  17. Swift3.0:NSURLConnection的使用
  18. 关于Python中深拷贝与浅拷贝的理解(一)---概念
  19. Git初级使用教程
  20. Django中组合搜索功能

热门文章

  1. 3.MongoDB系列之查询
  2. 【Kubernetes】K8s笔记(十一):Ingress 集群进出流量总管
  3. 现在入行Java真的还有出路吗?
  4. curl 下载地址中有特殊字符解决方案
  5. MyBatis&Spring Framrwork
  6. 微信小程序canvas 证件照制作
  7. 带你从0到1开发AI图像分类应用
  8. java学习之IO流
  9. Re:从零开始教你使用 Sublime Text
  10. vue3 结合 element-plus 框架实现增删改查功能(不连接数据库)