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,它们应该是可访问的。
答
它取决于什么类加载器试图加载类,如果它被一些库初始化或发现它可能使用Thread类加载器而不是你的插件类加载器,它通常是ClassicPluginStrategy$AntClassLoader2
。
您可以选择传递类加载器或直接创建实例。我有与jax-rs相同的问题并修复它。
我设法让插件通过增加两个罐子战成/ WEB-INF/lib下的一个丑陋的解决办法工作。 - 问题仍然有效。 – michas 2013-03-10 21:47:20