1

以下に示すサイト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 を Jenkin の /web-inf/lib/ ディレクトリにコピーし、既存の log4j を uDeploy のもので上書きします (Jenkin のものと一致するように名前を変更します)。

Jenkins のスタンドアロン インスタンス (Tomcat アプリではない) では、Jenkins はすべてのファイルのハッシュを保持し、log4j ファイルの変更後にハッシュが一致しないため、Jenkins の起動時にエラーをスローします。唯一の解決策は、ハッシュを追跡するファイル内の値を削除することです。」

war ファイルを解凍し、WEB-INF/lib/ の下にある log4j jar (1.2.9) を削除し、最新の log4j jar (1.2.17) を追加し、名前を 1.2.9 に変更してから、SHA1-Digest: 行を削除しました。 (ハッシュ) log4j 1.2.9 のマニフェストの META-INF/ all の下にあり、上記の指示と一致しているようです。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がwikiページに特別な注意を追加したことを考えると、明らかに十分な数の人々がこの問題を抱えていました. ヘルプ/提案/アイデアは大歓迎です。

Jenkins のバージョンは 1.525 です。

4

4 に答える 4

3

誰かがまだ解決策に興味がある場合は、ダイジェストを削除しませんでした. log4j-1.2.9.jar を削除し、log4j-1.2.17.jar を (名前を変更せずに) 追加しただけです。それは見事に機能しました。ジェンキンス バージョン 1.542。

于 2014-02-27T13:12:28.663 に答える
1

なぜ 1.2.9 に名前を変更したのですか? おそらく 1.2.17 という名前で動作します。これは署名付きの jar であり、名前を変更したことが原因で壊れた可能性があります。

jenkins が Linux 上の tomcat で実行されている場合は、おそらく webapps ディレクトリにボックスにログインし、jenkins war を再パックするよりも、そこで拡大する war を変更する方が速いでしょう。

于 2013-10-11T19:25:26.063 に答える
0

この時点では、Jenkins プラグインの新しいバージョンを使用してください。非互換性が削除されました。

于 2014-09-24T21:23:46.743 に答える
0

次の手順に従って、log4j のバージョンを変更し、記載されている uDeploy の問題を解決します。

  1. ジェンキンスを止める
  2. Jenkins のインストール ディレクトリに移動します。
  3. .jenkins\war\WEB-INF\lib に移動します [Windows システムの場合]
  4. log4j-1.2.9.jar を削除し、log4j-1.2.17.jar を追加します (名前を変更せずに)
  5. ジェンキンスを再起動します

IBM が解決策として示したすべての手順に従う必要はありません:- https://developer.ibm.com/urbancode/plugin/jenkins-ibmucd/

于 2014-08-12T14:08:32.287 に答える