服务器 
首页 > 服务器 > 浏览文章

Tomcat启动springboot项目war包报错:启动子级时出错的问题

(编辑:jimmy 日期: 2024/11/19 浏览:3 次 )

今天公司springboot项目准备部署到测试服务器上进行测试,打包好war后放到tomcat里面启动后,前端文件能访问到,但是接口请求一直是404,一直找了很久的原因,tomcat启动是成功的,war打包的时候也提示build success了,tomcat启动日志发现报错:

java.lang.IllegalStateException: 启动子级时出错
  at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:720)
  at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
  at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
  at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:978)
  at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1848)
  at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
  at java.util.concurrent.FutureTask.run(Unknown Source)
  at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
  at java.util.concurrent.AbstractExecutorService.submit(Unknown Source)
  at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:773)
  at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427)
  at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576)
  at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
  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:936)
  at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
  at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
  at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
  at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
  at java.util.concurrent.FutureTask.run(Unknown Source)
  at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
  at java.util.concurrent.AbstractExecutorService.submit(Unknown Source)
  at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
  at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
  at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
  at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
  at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
  at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
  at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
  at org.apache.catalina.startup.Catalina.start(Catalina.java:738)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  at java.lang.reflect.Method.invoke(Unknown Source)
  at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)
  at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
 Caused by: org.apache.catalina.LifecycleException: 初始化组件[org.apache.catalina.webresources.JarResourceSet@67d48005]失败。
  at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
  at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:139)
  at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:173)
  at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:726)
  at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
  at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4792)
  at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4928)
  at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
  at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
  ... 37 more
 Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: error in opening zip file
  at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:143)
  at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
  ... 44 more
 Caused by: java.util.zip.ZipException: error in opening zip file
  at java.util.zip.ZipFile.open(Native Method)
  at java.util.zip.ZipFile.<init>(Unknown Source)
  at java.util.zip.ZipFile.<init>(Unknown Source)
  at java.util.jar.JarFile.<init>(Unknown Source)
  at java.util.jar.JarFile.<init>(Unknown Source)
  at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:221)
  at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:206)
  at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:140)
  ... 45 more

一直在关注:启动子级时出错,找了很久没有解决!后面关注到下面的zip错误问题,然后再回去考虑打包的问题,终于发现打包的时候出现了问题,虽然最后是build success,但是前面提示了有error没注意到,截图如下:

Tomcat启动springboot项目war包报错:启动子级时出错的问题

这就是问题所在,怎么解决的呢?

解决方法:

将报错的jar包从maven仓库中删除掉,然后重新下载打包,发现这一次没有报错error,然后扔到tomcat里面启动没有错误日志了,访问也正常了!

谨以此文章记录提醒以后自己多关注一下项目执行、打包等过程和日志等!

总结

上一篇:Ubuntu16.04下CUDA8.0和CUDA9.0共存
下一篇:ubuntu16.04 升级内核的方法步骤
一句话新闻
一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?