jenkins插件的类路径

问题描述:

我有一个安装了openid插件的jenkins。 我尝试通过openid进行身份验证,但收到一个抱怨java.lang.NoClassDefFoundError: org/openid4java/util/OpenID4JavaDOMParser的网页。jenkins插件的类路径

缺少的类包含在位于“plugins/openid/WEB-INF/lib /”的jar中。

为什么Jenkins无法加载该类?

任何想法如何调试? (日志文件除NoClassDefFoundError外没有提供更多的信息。)

更新: 将jar符号链接到“war/WEB-INF/lib”之后,jenkins能够访问该类。似乎插件中的jar简单地被忽略,但根据Documentation,它们应该是可访问的。

+0

我设法让插件通过增加两个罐子战成/ WEB-INF/lib下的一个丑陋的解决办法工作。 - 问题仍然有效。 – michas 2013-03-10 21:47:20

它取决于什么类加载器试图加载类,如果它被一些库初始化或发现它可能使用Thread类加载器而不是你的插件类加载器,它通常是ClassicPluginStrategy$AntClassLoader2

您可以选择传递类加载器或直接创建实例。我有与jax-rs相同的问题并修复它。

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