2013-10-11 89 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

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