Jenkins从2.319.3.4升级到2.462.1.3失败,报NoClassDefFoundError错误
CloudBees Jenkins升级后
java.lang.NoClassDefFoundError问题解决方法 问题场景
在RHEL系统上将CloudBees Jenkins从2.319.3.4版本升级至2.462.1.3版本后,启动时触发以下错误导致系统无法正常加载:
java.lang.NoClassDefFoundError: jenkins/security/QueueItemAuthenticatorMonitor at PluginClassLoader for cloudbees-administrative-monitors//com.cloudbees.jenkins.plugins.administrative_monitors.CloudbeesAdministrativeMonitorExtensionFilter.allows(CloudbeesAdministrativeMonitorExtensionFilter.java:26) at jenkins.ExtensionFilter.isAllowed(ExtensionFilter.java:81) at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:363) at hudson.ExtensionList.load(ExtensionList.java:384) at hudson.ExtensionList.ensureLoaded(ExtensionList.java:320) at hudson.ExtensionList.iterator(ExtensionList.java:172) at jenkins.model.Jenkins.launchTcpSlaveAgentListener(Jenkins.java:1355) at jenkins.model.Jenkins.<init>(Jenkins.java:1020) at hudson.model.Hudson.<init>(Hudson.java:86) at hudson.model.Hudson.<init>(Hudson.java:82) at hudson.WebAppMain$3.run(WebAppMain.java:248) Caused: hudson.util.HudsonFailedToLoad at hudson.WebAppMain$3.run(WebAppMain.java:262)
问题原因
核心原因是cloudbees-administrative-monitors插件与升级后的Jenkins核心版本不兼容:插件代码中依赖的QueueItemAuthenticatorMonitor类在新核心版本中已被移除、重命名,或者插件版本未同步更新适配新核心。
解决步骤
方法1:移除不兼容插件后重新适配
- 停止Jenkins服务:
sudo systemctl stop jenkins - 进入Jenkins默认插件目录:
cd /var/lib/jenkins/plugins - 删除或备份
cloudbees-administrative-monitors相关文件及目录:# 直接删除 rm -rf cloudbees-administrative-monitors* # 或备份后删除 # mv cloudbees-administrative-monitors.hpi cloudbees-administrative-monitors.hpi.bak # mv cloudbees-administrative-monitors cloudbees-administrative-monitors.bak - 重启Jenkins服务:
sudo systemctl start jenkins - 登录Jenkins后,进入插件管理页面,搜索并安装适配2.462.1.3版本的
cloudbees-administrative-monitors插件。
方法2:确保核心升级完整性
若方法1无效,可能是Jenkins核心升级不完整:
- 下载对应版本的CloudBees Jenkins WAR包(2.462.1.3)
- 停止服务并替换原WAR包(默认路径为
/usr/lib/jenkins/jenkins.war):sudo systemctl stop jenkins sudo cp /path/to/cloudbees-jenkins-2.462.1.3.war /usr/lib/jenkins/jenkins.war - 清理工作目录(提前备份配置、构建记录等重要数据):
sudo rm -rf /var/lib/jenkins/work/* - 重启Jenkins,再按方法1处理插件兼容性问题。
方法3:批量排查插件兼容性
升级前未做兼容性检查的话,可强制启动系统后批量处理:
- 启动Jenkins时添加参数:
-Djenkins.install.runSetupWizard=false -Djenkins.pluginManager.failOnError=false,跳过插件加载错误进入系统 - 进入插件管理-已安装页面,逐一升级所有标记为"不兼容"的插件,重点关注CloudBees专属插件
内容的提问来源于stack exchange,提问作者Dev Kumar
相关产品推荐
相关产品推荐

