首页 新闻 会员 周边 捐助

tomcat启动项目报这个错,怎么解决。

0
悬赏园豆:30 [已解决问题] 解决于 2017-10-26 11:15

org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/chat-web]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@7b4c1346]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4969)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5099)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
... 10 more
Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@5410256b]
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:135)
at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:706)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
... 13 more
Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: invalid LOC header (bad signature)
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:113)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
... 16 more
Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)
at java.util.zip.ZipFile.read(Native Method)
at java.util.zip.ZipFile.access$1400(ZipFile.java:60)
at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:734)
at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:434)
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
at sun.misc.IOUtils.readFully(IOUtils.java:65)
at java.util.jar.JarFile.getBytes(JarFile.java:425)
at java.util.jar.JarFile.getManifestFromReference(JarFile.java:193)
at java.util.jar.JarFile.getManifest(JarFile.java:180)
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:111)
... 17 more

SunBeam&&xyz的主页 SunBeam&&xyz | 初学一级 | 园豆:177
提问于:2017-10-25 14:55
< >
分享
最佳答案
0

主要问题是损坏的jar。

 

要找到损坏的一个,您需要在Eclipse的断点视图中添加一个Java异常断点,或者您首选的IDE,选择Java.util.zip。ZipException类,并重新启动Tomcat实例。

 

当JVM暂停ZipException断点时你必须去JarFile.getManifestFromReference堆栈跟踪(),并检查文件名属性名称。

 

在此之后,您应该从文件系统中删除该文件,然后右键单击您的项目,选择Maven,更新项目,检查快照/发行版的Force更新。


======================================================

步骤:

使用您的首选IDE,在这里使用eclipse:

在异常堆栈中找到一个适当的位置

设置条件断点(断点设置在java.util.jar.JarFile中的    getManifestFromReference()方法中  对应188行---》        JarEntry manEntry = getManEntry();
设置断点条件System.out.println("====="+this.getName());false;)--》打印出jar信息)

调试它

它将在异常之前打印损坏的jar(异常抛出之前的最后一个jar为损坏的jar包)

从文件系统中删除该文件,然后右键单击您的项目,选择Maven,更新项目,检查快照/发行版的Force更新。

SunBeam&&xyz | 初学一级 |园豆:177 | 2017-10-26 11:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册