2013-10-11 2 views
1

아래에 표시된 http://wiki.urbancode.com/uDeploy/Repositories에 제공된 지침에 따라 udeploy 플러그인을 사용할 수 있도록 jenkins의 log4j jar 파일을 성공적으로 업데이트 한 사람이 있습니까?Jenkins udeploy 플러그인 log4j 문제

참고 : 젠킨스는 종종 이전 log4j 파일을 사용하여 플러그인이 필요합니다. 교환해야 할 수도 있습니다. 아래의 내용을 참조 :
1. 포장을 풀고에게 jenkins.war를
압축을 푼 .WAR의 디렉토리에 2./WEB-INF/lib에 당신의 uDeploy 서버의 %로 Jenkin의에 log4j.jar
3. 이동의 이름을 결정하기 위해/lib 디렉토리의 ServerLocation % 및 uDeploy의 젠킨스 (안 톰캣 응용 프로그램의 독립 실행 형 인스턴스에

을 (Jenkin의 일치하도록 이름을 변경)와 기존의 log4j를 덮어, Jenkin의/WEB-INF/lib/디렉토리로 우리에 log4j.jar를 복사), Jenkins는 모든 파일의 해시를 유지하고 log4j 파일을 수정 한 후 일치하지 않는 해시로 인해 Jenkins를 시작할 때 오류가 발생합니다. 유일한 해결책은 해시를 추적하는 파일의 값을 제거하는 것입니다. "

WEB-INF/lib /에있는 log4j jar (1.2.9)를 삭제하고 최신 log4j jar 파일을 추가했습니다. (1.2.17)의 이름을 1.2.9로 변경 한 후 위의 지침에 동의하는 META-INF/all 아래의 manifest에있는 log4j 1.2.9에 대한 SHA1-Digest : 행 (해시)을 제거했습니다. SHA1 서명이 매니페스트에이 아니라고 불평 다음과 같은 오류 전쟁 (서비스 젠킨스 시작) 결과 : 내가 놓친 게 무엇

Starting Jenkins Exception in thread "main" java.lang.SecurityException: invalid SHA1 signature file digest for WEB-INF/lib/log4j-1.2.9.jar 
     at sun.security.util.SignatureFileVerifier.verifySection(SignatureFileVerifier.java:457) 
     at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:250) 
     at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:193) 
     at java.util.jar.JarVerifier.processEntry(JarVerifier.java:262) 
     at java.util.jar.JarVerifier.update(JarVerifier.java:216) 
     at java.util.jar.JarFile.initializeVerifier(JarFile.java:341) 
     at java.util.jar.JarFile.getInputStream(JarFile.java:406) 
     at sun.misc.URLClassPath$JarLoader$2.getInputStream(URLClassPath.java:752) 
     at sun.misc.Resource.cachedInputStream(Resource.java:77) 
     at sun.misc.Resource.getByteBuffer(Resource.java:160) 
     at java.net.URLClassLoader.defineClass(URLClassLoader.java:436) 
     at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
     at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:476) 
                  [FAILED] 

는 내가 제대로 방향을 따라 생각하고, 분명히 충분한 사람들 uDeploy가 사양을 추가 했으므로이 문제가 발생했습니다. 그것에 관한 그들의 위키 페이지에 ial note. 어떤 도움/제안/아이디어라도 높이 평가 될 것입니다.

젠킨스는 1.525 버전입니다.

답변

1

왜 이름을 1.2.9로 바꿨습니까? 아마도 1.2.17처럼 작동합니다. 그것은 서명 된 항아리입니다. 이름이 바뀐 이유가 그것이 파산 한 이유 일 수 있습니다.

jenkins가 Linux의 Tomcat에서 실행되는 경우 jappkins 전쟁을 재 포장하는 대신 webapps 디렉토리의 상자에 로그인하여 확장 전쟁을 변경하는 것이 더 빠릅니다.

+0

나는 이름을 1.2.9 bc로 바꿨다. 그것은 urbancode에 대한 공식적인 지시 사항이다. 그 이름을 그대로두고 매니페스트에서 1.2.9 항목을 삭제하면 다음 오류가 발생했습니다. jenkins가 삭제되고 (그리고 전쟁 캐시가 삭제 된 후) 1.2.9를 계속 찾는 이유에 대한 통찰력이 있다면 크게 환영 할 것입니다. : 스레드 "main"에서 Jenkins Exception 시작 java.lang.SecurityException : 서명 파일 항목에 대한 가장 명백한 섹션이 없습니다. WEB-INF/lib/log4j-1.2.9.jar at sun.security.util.SignatureFileVerifier.verifySection (SignatureFileVerifier.java : 399) at sun.security.ut .. – user2871959

3

누구나 여전히 솔루션에 관심이 있다면, 나는 다이제스트를 제거하지 않았습니다. 그냥 log4j-1.2.9.jar을 삭제하고 log4j-1.2.17.jar을 추가했습니다 (이름 바꾸기없이). 그것은 훌륭하게 작동했습니다. 젠킨스 버전 1.542.

0

명시된 uDeploy의 문제의 log4j 버전을 변경하고 해결하려면 다음 단계에 따라 : -

  1. 정지 젠킨스 젠킨스의 설치 디렉토리
  2. 이동 .jenkins에 \ 전쟁 \ 웹에
  3. 이동 -INF \ lib [Windows 시스템의 경우]
  4. log4j-1.2.9.jar을 삭제하고 log4j-1.2.17을 추가하십시오.(이름 변경없이) 항아리
  5. 다시 시작 젠킨스

는 IBM에 의해 솔루션으로 주어진 모든 단계를 수행 할 필요가 없습니다 - 단지의 새 버전을 사용, https://developer.ibm.com/urbancode/plugin/jenkins-ibmucd/

0

이 시점을 젠킨스 플러그인. 비 호환성이 제거되었습니다.