Scenario


Maven Pom.xml 파일을 업데이트 한뒤, compile error는 모두 잡았으나 tomcat을 실행할때 계속해서 

java.util.zip.ZipException: invalid LOC header (bad signature)

.....

No naming context bound to this class loader 

위와 같은 에러가 계속해서 떳다. 

에러를 해결하기 위한 삽질에 대해 적어보겠다.

 

Solution


사실

java.util.zip.ZipException: invalid LOC header (bad signature)

에러가 떳을때 구글링을 해보면 가장 많이 나오는 해결 방법은 그냥 maven repository를 삭제했다가 update를 하라고 가장 많이나온다. 하지만 나의경우에는 다 삭제 후 메이븐을 다시업데이트 해도 에러가 계속해서 났다. 그리고 메이븐 업데이트 할때 시간이 엄청나게 오래걸려서 스트레스가 쌓여만 갔다.

가장좋은 방법은 

1. java.util.zip.ZipException 내 ZipException 메소드에 break point를 걸어준다

2.에러가 날때 왼쪽 스택트레이스를 보면 JarFile.getManifestFromReference() 하는 부분이 있다. 그 부분을 더블 클릭해 본다.

Zipexceiption Break point setting 시 starck trace

3.manEntry 변수 내부에 jar를 확이하여 그 jar파일만 삭제 후 다시 받아본다.

위와 같이 하면 통짜로 repository를 삭제 할 필요가 없이 자르만 삭제 후 다시받으면된다

 

manEntry 내부 member 들

 

출처: https://stackoverflow.com/questions/32090921/deploying-maven-project-throws-java-util-zip-zipexception-invalid-loc-header-b

+ Recent posts