Maven專案報錯invalid LOC header (bad signature)

讓丄帝愛伱發表於2020-11-08

報錯資訊如下:

在這裡插入圖片描述

嚴重: A child container failed during start  
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SpringMvcController]]  
    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:916)  
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)  
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)  
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)  
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)  
    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)  
 
Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: invalid LOC header (bad signature)  
    at org.apache.catalina.webresources.JarResourceSet.initInternal(JarResourceSet.java:96)  
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)  
    ... 12 more  
Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)  

在這裡插入圖片描述
說明jar包出現了問題。

  • 解決方法1:
    • 右擊專案名 —> Run as —> Maven test ,這時控制檯會報哪個jar包出錯
    • 或者專案目錄下命令列執行:mvn test 和Eclipse控制檯輸出資訊一致
  • 解決方法2:
    如果方法1未出現任何錯誤資訊,那麼開啟專案中的pom.xml檔案,在自己的Maven本地倉庫去查詢pom.xml檔案中每一個dependency節點所對應的jar包版本。一個一個對比,看看是否都正常下載。 找到了本地倉庫中出現的jar包錯誤:
    在這裡插入圖片描述
    解決方法:
    既然jar包未下載成功,那麼重新下載就行了。如果重新下載還是不能成功,那就在網上下載同版本的拷貝進去。
    刪除掉該jar包所在目錄下的所有檔案後,重新執行maven install。

    在這裡插入圖片描述

這時,可看到jar包已正常下載。
在這裡插入圖片描述
再次執行專案,右擊專案 —> Run as —> Run on server 。專案能正常執行了。

相關文章