是否有人成功更新了jenkins的log4j jar文件,以便按照其网站http://wiki.urbancode.com/uDeploy/Repositories上提供的说明获取udeploy插件,如下所示?
注意: Jenkins经常使用较旧的log4j文件然后我们的插件需要。您可能需要更换它。请参阅以下说明:
1.打开jenkins.war包装
2.在解压缩的.war目录中打开/ web-inf / lib以确定Jenkin的log4j.jar的名称
3.导航到您的uDeploy服务器的%serverLocation%/ lib目录,并将我们的log4j.jar复制到Jenkin的/ web-inf / lib /目录,用uDeploy覆盖现有的log4j(将其重命名为与Jenkin相匹配)
在Jenkins的独立实例(不是Tomcat应用程序)上,Jenkins会保留所有文件的哈希值,并且在修改log4j文件后由于哈希不匹配而在启动Jenkins时会抛出错误。唯一的解决方案是删除跟踪哈希值的文件中的值。“
我解压缩war文件,删除了在WEB-INF / lib /下找到的log4j jar(1.2.9),添加了最新的log4j jar(1.2.17),将其重命名为1.2.9,然后删除了SHA1-摘要:在META-INF / all下的清单中找到的log4j 1.2.9的行(哈希)似乎与上述说明一致。部署war(service jenkins start)会导致以下错误,抱怨清单中没有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。
答案 0 :(得分:3)
如果有人仍然对解决方案感兴趣,我没有删除摘要。刚刚删除了log4j-1.2.9.jar并添加了log4j-1.2.17.jar(没有重命名),这就是我所做的一切。它运作得非常出色。詹金斯版本1.542。
答案 1 :(得分:1)
为什么要将其重命名为1.2.9?它的工作方式可能与1.2.17相同。这是一个签名的jar,重命名它可能是它破裂的原因。
如果jenkins在linux上的tomcat上运行,你可能只需更快地登录到webapps目录的盒子并改变那里不断扩大的战争,而不是重新打包jenkins战争。
答案 2 :(得分:0)
按照以下步骤更改log4j版本并解决所述的uDeploy问题: -
没有必要遵循IBM提供的所有解决方案: - https://developer.ibm.com/urbancode/plugin/jenkins-ibmucd/
答案 3 :(得分:0)
此时,只需使用新版本的Jenkins插件即可。不相容性已被删除。