4

openidプラグインがインストールされたjenkinsがあります。openidを介して認証しようとしましたが、について不平を言うWebページを受け取りましたjava.lang.NoClassDefFoundError: org/openid4java/util/OpenID4JavaDOMParser

欠落しているクラスは、「plugins / openid / WEB-INF /lib/」にあるjarに含まれています。

Jenkinsがそのクラスを読み込めないのはなぜですか?

デバッグする方法はありますか?(ログファイルには、NoClassDefFoundError以外の情報は含まれていません。)

更新:jarを「war / WEB-INF / lib」にシンボリックリンクした後、jenkinsはクラスにアクセスできるようになります。プラグインのjarは単に無視されるようですが、ドキュメントによると、それらはアクセス可能である必要があります。

4

1 に答える 1

0

クラスをロードしようとしているクラスローダによって異なります。ライブラリまたはディスカバリによって初期化された場合、プラグイン クラスローダの代わりにスレッド クラスローダを使用する場合がありますClassicPluginStrategy$AntClassLoader2

クラスローダーを渡すか、インスタンスを直接作成するオプションがある場合があります。jax-rs にも同じ問題があり、そのように修正しました。

https://github.com/carlossg/KubernetesAPIJavaClient/blob/c6082e3/src/main/java/com/github/kubernetes/java/client/v2/RestFactory.java#L66

于 2015-01-26T17:57:53.583 に答える