我安装了openid插件的jenkins。
我尝试通过openid进行身份验证,但收到一个抱怨java.lang.NoClassDefFoundError: org/openid4java/util/OpenID4JavaDOMParser
。
缺少的类包含在位于“plugins / openid / WEB-INF / lib /".
的jar中为什么Jenkins无法加载该类?
任何想法如何调试? (除了NoClassDefFoundError之外,日志文件没有提供更多信息。)
更新: 将jar符号化为“war / WEB-INF / lib”后,jenkins可以访问该类。似乎简单地忽略了插件中的jar,但根据Documentation,它们应该是可访问的。
答案 0 :(得分:0)
这取决于类加载器尝试加载类,如果它被某些库或发现初始化,它可能使用Thread类加载器而不是插件类加载器,通常是ClassicPluginStrategy$AntClassLoader2
。
您可以选择传递类加载器或直接创建实例。我和jax-rs有同样的问题并以这种方式修复它。