重启jenkins,出现如下问题:
com.thoughtworks.xstream.mapper.CannotResolveClassException: hudson.security.ProjectMatrixAuthorizationStrategy at ... Caused: jenkins.util.xstream.CriticalXStreamException: hudson.security.ProjectMatrixAuthorizationStrategy : hudson.security.ProjectMatrixAuthorizationStrategy ---- Debugging information ---- message : hudson.security.ProjectMatrixAuthorizationStrategy cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException cause-message : husdon.security.ProjectMatrixAuthorizationStrategy class : husdon.model.Hudson required-type : hudson.model.Hudson converter-type : hudson.util.RobustReflectionConverter path : /hudson/authorizationStrategy line number : 15 version : not avaiable |
下图是在jenkins网页上显示的内容:
以下是jenkins启动的log信息。
log显示,载入config失败。jenkins在启动的时候,会载入JENKINS_HOME下的config.xml文件。可是在该文件是存在,并且权限也正确。
百度,谷歌,以及试过各种方法,都不能解决该问题。
查看config.xml文件,第15行。这里是设置矩阵授权策略。而设置矩阵授权策略,是需要一个插件matrix-auth。
由此,想起,是不是该插件缺少导致?去查看JENKINS_HOME目录下的plugins目录下的matrix-auth,发现该目录下的WEB-INF目录下为空,说明没有该插件。
问题找到,剩下就是将该插件装上就行了。但是jenkins都不能启动,又如何安装了?
将JENKINS_HOME目录下的config.xml,备份成config.xml.bak,然后删除掉config.xml文件,即可启动jenkins,但是这时候,jenkins使用默认的配置。然后进入到插件管理,将所需插件进行安装。安装完毕后,将jenkins服务关闭,将config.xml.bak还原成config.xml。重新启动jenkins服务,问题解决。