【发布时间】:2013-10-11 17:53:28
【问题描述】:
是否有人按照其网站http://wiki.urbancode.com/uDeploy/Repositories 上提供的说明成功更新了 jenkins 的 log4j jar 文件以使 udeploy 插件正常工作,如下所示?
注意: Jenkins 经常使用旧的 log4j 文件,然后我们的插件需要。您可能需要更换它。请参阅下面的说明:
1.解压jenkins.war
2.打开解压后的.war目录下的/web-inf/lib,确定Jenkin的log4j.jar的名字
3. 导航到 uDeploy 服务器的 %serverLocation%/lib 目录并将我们的 log4j.jar 复制到 Jenkins 的 /web-inf/lib/ 目录,用 uDeploy 覆盖现有的 log4j(重命名以匹配 Jenkins)
在 Jenkins 的独立实例(不是 Tomcat 应用程序)上,Jenkins 会保留所有文件的哈希值,并且在启动 Jenkins 时会由于修改 log4j 文件后哈希值不匹配而引发错误。唯一的解决方案是删除文件中跟踪哈希的值。”
我解压war文件,删除WEB-INF/lib/下的log4j jar(1.2.9),添加最新的log4j jar(1.2.17),重命名为1.2.9,然后删除SHA1-摘要:在 META-INF/ 下的清单中找到的 log4j 1.2.9 的行(哈希)似乎与上述说明一致。部署战争(服务 jenkins 启动)会导致以下错误,抱怨清单中没有 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 在他们的 wiki 页面上添加了一个关于它的特殊注释。任何帮助/建议/想法将不胜感激。
Jenkins 是 1.525 版。
【问题讨论】: