有没有人按照他们的网站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-Digest:行(哈希)在 META-INF/ 下的清单中找到的 log4j 1.2.9 似乎与上述说明一致。部署战争(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 在他们的 wiki 页面上添加了一个关于它的特殊注释。任何帮助/建议/想法将不胜感激。
詹金斯是 1.525 版本。