2013-10-11 88 views
1

有沒有人成功更新詹金斯得到udeploy插件通過以下提供在其網站上http://wiki.urbancode.com/uDeploy/Repositories說明工作log4j的jar文件,如下圖所示?詹金斯udeploy插件log4j的問題

注:詹金斯經常使用舊的log4j文件,然後我們的插件需要。您可能需要更換它。請參閱以下說明:
1.解壓縮jenkins.war
2.在解壓縮的.war目錄中打開/ web-inf/lib以確定Jenkin的log4j.jar名稱
3.導航至您的uDeploy服務器的% serverLocation%/ lib目錄下,我們log4j.jar複製到詹的/ WEB-INF/lib /目錄下,覆蓋具有uDeploy的(重命名它來搭配詹的)

在詹金斯(非Tomcat的應用程序的獨立實例現有的log4j ),Jenkins保留所有文件的哈希值,並在修改log4j文件後由於不匹配的哈希而啓動Jenkins時拋出錯誤。 「

我解開了war文件,刪除了在WEB-INF/lib /下找到的log4j jar(1.2.9),添加了最新的log4j jar (1.2.17),將其重命名爲1.2.9,然後刪除在META-INF/all下清單中找到的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添加了一個規範,因此遇到了這個問題請注意他們的維基頁面。任何幫助/建議/想法將不勝感激。

詹金斯版本是1.525。

回答

1

爲什麼你將它重命名爲1.2.9?它可能會像1.2.17一樣命名。這是一個簽名的jar,重命名它可能是它破壞的原因。

如果jenkins在linux上運行在tomcat上,那麼你可能會更快地登錄webapps目錄並改變擴展戰爭,而不是重新打包詹金斯戰爭。

+0

我將它重命名爲1.2.9 BC,這是urbancode的官方說明。將它命名爲is並從清單中刪除1.2.9條目會產生以下錯誤 - 如果您瞭解了jenkins在刪除後仍然尋找1.2.9(以及擴展war cache被清除)的原因,將不勝感激:在線程「main」中啓動Jenkins異常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

按照以下步驟更改log4j的版本,並解決所述uDeploy問題: -

  1. 停止詹金斯
  2. 轉到詹金斯的安裝目錄
  3. 導航到.jenkins \戰爭\ WEB -INF \ lib中[在Windows系統]
  4. 刪除的log4j-1.2.9.jar和添加的log4j-1.2.17。罐子(不重命名)
  5. 重啓詹金斯

這是沒有必要按照給定的如IBM的解決方案的所有步驟: - https://developer.ibm.com/urbancode/plugin/jenkins-ibmucd/

0

在這一點上,只是使用的新版本詹金斯插件。不兼容性被刪除。