重启Tomcat后Jenkins启动失败的原因是什么?
Tomcat重启后Jenkins上下文启动失败,报错
Unable to inject class jenkins.slaves.NioChannelSelector 问题描述
我在Tomcat 9.0.67中成功部署了Jenkins 2.361.1,初始状态下可通过http://localhost:8080/jenkins正常访问。但使用shutdown.bat关闭Tomcat再用startup.bat重启后,Tomcat日志出现以下错误:
SEVERE [main] org.apache.catalina.core.StandardContext.startInternal One or more Filters failed to start. Full details will be found in the appropriate container log file SEVERE [main] org.apache.catalina.core.StandardContext.startInternal Context [/jenkins] startup failed due to previous errors INFO [main] hudson.lifecycle.Lifecycle.onStatusUpdate Stopping Jenkins INFO [main] jenkins.model.Jenkins$16.onAttained Started termination SEVERE [main] jenkins.model.Jenkins$16.onTaskFailed Failed NioChannelSelector.cleanUp java.lang.IllegalArgumentException: Unable to inject class jenkins.slaves.NioChannelSelector at hudson.init.TaskMethodFinder.lookUp(TaskMethodFinder.java:130) ...
此时http://localhost:8080仍可正常访问,但http://localhost:8080/jenkins返回404页面。Tomcat是压缩包解压安装的,关闭后未做任何修改,请问该错误的原因是什么?
可能的原因及解决方案
1. Jenkins工作目录权限异常
Jenkins默认工作目录(通常是%CATALINA_HOME%/.jenkins或当前系统用户目录下的.jenkins)在Tomcat重启后可能出现权限问题,导致Jenkins无法读写配置文件或临时数据,进而引发类注入失败。
- 解决:检查
.jenkins目录的读写权限,确保Tomcat运行用户对该目录拥有完整的读写权限。Windows系统可通过右键目录→属性→安全选项卡添加权限;Linux系统使用chown -R <tomcat-user> <jenkins-dir>和chmod -R 755 <jenkins-dir>调整。
2. Tomcat临时目录缓存冲突
Tomcat的temp目录(%CATALINA_HOME%/temp)中残留的Jenkins相关缓存文件可能在重启时干扰类加载,导致过滤器启动失败。
- 解决:关闭Tomcat后,删除
temp目录下的所有文件及子目录,再重新启动Tomcat。
3. Jenkins部署文件损坏或残留
虽然初始部署成功,但Tomcat重启时可能读取到损坏的部署缓存或残留文件,引发上下文启动失败。
- 解决:
- 关闭Tomcat,删除
%CATALINA_HOME%/webapps/jenkins目录和jenkins.war文件; - 重新下载官方Jenkins 2.361.1的WAR包,放入
webapps目录; - 启动Tomcat重新完成部署。
- 关闭Tomcat,删除
4. 类加载冲突
Tomcat自带的类库与Jenkins WAR包中的类库可能存在冲突,尤其是NIO相关类,导致NioChannelSelector无法正常注入。
- 解决:检查Tomcat的
lib目录是否存在额外的NIO相关jar包,若有则移除;若问题仍存在,可尝试更换Tomcat版本(比如9.0.70+)或Jenkins版本,避开已知的类加载冲突。
5. Jenkins初始化任务残留
第一次启动时的Jenkins初始化任务可能未完全完成,重启时残留的初始化脚本或配置导致注入失败。
- 解决:删除
.jenkins目录下的init.groovy.d文件夹(如果存在),或备份后删除.jenkins/config.xml,让Jenkins重新初始化配置。
内容的提问来源于stack exchange,提问作者jpizarra
相关产品推荐
相关产品推荐

