eclipse运行maven项目,tomcat启动报错

使用eclipse创建maven项目后,在pom.xml文件中添加依赖。若依赖包没有下载,eclipse会自行下载到maven的本地仓库。写完代码后进行编译运行,发现tomcat服务器启动不了。

控制台打印的错误主要有:

严重: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/spring-upload]]
at java.util.concurrent.FutureTask.report(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:939)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

先开始我以为错误信息就是 A child container failed during start 或者 Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/spring-upload]],通过百度并不能找到有用的解决方案。这个问题困扰了我好久,后来才发现错误信息基本都是org.apache.catalina报的错,只有一两处不一样。

Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: invalid LOC header (bad signature)
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:142)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
… 12 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(Unknown Source)
at java.util.zip.ZipFile$ZipFileInputStream.read(Unknown Source)
at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(Unknown Source)
at java.util.zip.InflaterInputStream.read(Unknown Source)
at sun.misc.IOUtils.readFully(Unknown Source)
at java.util.jar.JarFile.getBytes(Unknown Source)
at java.util.jar.JarFile.getManifestFromReference(Unknown Source)
at java.util.jar.JarFile.getManifest(Unknown Source)
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:140)
… 13 more
即错误信息主要就是invalid LOC header,通过上网查询才发现pom.xml文件中的依赖包有的没有下载完全,导致出错。

那么右键点击项目名 --> run as --> maven test,在控制台即可报出为下载完全的jar包。

如果没有报错,那就使用笨方法,在仓库里一个一个找引入的依赖包,看看哪个没有下载完全。

发现commons-logging包里面多了一个文件 aether-3bf50b8e-634b-4a1c-b0cb-9c4f64a0d6a1-commons-logging-1.1.1.jar.sha1-in-progress,表示此包没有下载完毕。

解决方法就是将此文件所在的包全部删除,然后重新下载。在pom.xml文件中找到此包的依赖。

全选,然后右键点击,选择 run as --> maven install 即可重新下载。

最后重新启动服务器,tomcat能正常运行。

转载于:https://my.oschina.net/u/3666693/blog/1828059

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值