注明:
(1)确定是jar包的问题导致的tomcat运行或maven install报错。
(2)仅提供一种思路,不是解决特定问题
(3)希望大神们不吝指出不足,非常感谢
以我遇到的问题为例:
运行tomcat抛出的关键错误信息如下,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:717)
at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:419)
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.JarResourceSet.initInternal(JarResourceSet.java:137)
通过网上各种查询,确定是依赖的jar包导致。但具体是由哪个jar包无法得知,于是:
第一步,maven test。右键该工程,“run as”->“Maven test”。然后得到如下 出错信息,
[ERROR] Failure executing javac, but could not parse the error:
[ERROR] 错误: 读取C:\Users\ServerZhang\.m2\repository\org\springframework\spring-webmvc\4.3.10.RELEASE\spring-webmvc-4.3.10.RELEASE.jar时出错; invalid LOC header (bad signature)
[ERROR] 1 个错误
第二步,查找该jar包出错原因。
以上述为例,可能原因是spring-web和spring-webmvc 版本冲突(具体不详,没查询到各spring组件间的不兼容情况),然后修改spring-webmvc版本为4.2.3.RELEASE,问题解决。