当前位置: 首页 > 知识库问答 >
问题:

由于com原因,重新启动后Jenkins无法启动。思想工作。xstream。制图员。CannotResolveClassException

洪知
2023-03-14

詹金斯版本:詹金斯版本。2.32.1谷歌登录插件版本:1.3

我在重新启动jenkins后出现了这个错误,有人能建议我如何解决吗?

问题是:

-我已经确保,在插件目录我有谷歌登录插件启用

-我没有改变插件上的任何东西,只是直接重启

-我已经很久没有重新开始jenkins了

hudson.util.HudsonFailedToLoad: org.jvnet.hudson.reactor.ReactorException: java.io.IOException: Unable to read /var/lib/jenkins/config.xml
    at hudson.WebAppMain$3.run(WebAppMain.java:248)
Caused by: org.jvnet.hudson.reactor.ReactorException: java.io.IOException: Unable to read /var/lib/jenkins/config.xml
    at org.jvnet.hudson.reactor.Reactor.execute(Reactor.java:269)
    at jenkins.InitReactorRunner.run(InitReactorRunner.java:47)
    at jenkins.model.Jenkins.executeReactor(Jenkins.java:1110)
    at jenkins.model.Jenkins.<init>(Jenkins.java:926)
    at hudson.model.Hudson.<init>(Hudson.java:85)
    at hudson.model.Hudson.<init>(Hudson.java:81)
    at hudson.WebAppMain$3.run(WebAppMain.java:231)
Caused by: java.io.IOException: Unable to read /var/lib/jenkins/config.xml
    at hudson.XmlFile.unmarshal(XmlFile.java:161)
    at jenkins.model.Jenkins.loadConfig(Jenkins.java:3015)
    at jenkins.model.Jenkins.access$1100(Jenkins.java:326)
    at jenkins.model.Jenkins$16.run(Jenkins.java:3033)
    at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169)
    at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282)
    at jenkins.model.Jenkins$7.runTask(Jenkins.java:1086)
    at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210)
    at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
    at java.lang.Thread.run(Thread.java:748)
Caused by: jenkins.util.xstream.CriticalXStreamException: org.jenkinsci.plugins.googlelogin.GoogleOAuth2SecurityRealm : org.jenkinsci.plugins.googlelogin.GoogleOAuth2SecurityRealm
---- Debugging information ----
message             : org.jenkinsci.plugins.googlelogin.GoogleOAuth2SecurityRealm
cause-exception     : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message       : org.jenkinsci.plugins.googlelogin.GoogleOAuth2SecurityRealm
class               : hudson.model.Hudson
required-type       : hudson.model.Hudson
converter-type      : hudson.util.RobustReflectionConverter
path                : /hudson/securityRealm
line number         : 485
version             : not available
-------------------------------
    at hudson.util.RobustReflectionConverter.doUnmarshal(RobustReflectionConverter.java:356)
    at hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:270)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
    at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134)
    at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
    at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1189)
    at hudson.util.XStream2.unmarshal(XStream2.java:114)
    at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1173)
    at hudson.XmlFile.unmarshal(XmlFile.java:159)
    ... 11 more
Caused by: com.thoughtworks.xstream.mapper.CannotResolveClassException: org.jenkinsci.plugins.googlelogin.GoogleOAuth2SecurityRealm
    at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:79)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:55)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:88)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:79)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:74)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.SecurityMapper.realClass(SecurityMapper.java:71)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at hudson.util.XStream2$CompatibilityMapper.realClass(XStream2.java:282)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at hudson.util.xstream.MapperDelegate.realClass(MapperDelegate.java:43)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:48)
    at hudson.util.RobustReflectionConverter.determineType(RobustReflectionConverter.java:461)
    at hudson.util.RobustReflectionConverter.doUnmarshal(RobustReflectionConverter.java:327)
    ... 22 more

共有3个答案

皮弘博
2023-03-14

可能值得检查/var/lib/jenkins/config的umask。xml

丌官信厚
2023-03-14

我在詹金斯的网页而不是登录页面上遇到了同样的错误。我之所以这么做,是因为我想在Jenkins 2.73.3版上一次性更新所有插件。

和你一样,重新启动系统也无济于事。

所以我看了一下日志,它们看起来很相似:

oct. 22, 2019 9:41:14 AM jenkins.InitReactorRunner$1 onTaskFailed
GRAVE: Failed Loading plugin Credentials Plugin v2.3.0 (credentials)
java.io.IOException: Credentials Plugin v2.3.0 failed to load.
 - You must update Jenkins from v2.73.3 to v2.138.4 or later to run this plugin.
 - Structs Plugin v1.20 failed to load. Fix this plugin first.
        at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:626)

一个小细节:对我来说,插件不能更新,因为詹金斯版本太旧了。这与公认的解决方案中的日志正好相反。

所以我决定先更新詹金斯

 sudo apt-get update
 sudo apt-get install jenkins  # Say N to overwrite the config.

我找到了詹金斯,但不是所有的插件:尽管服务器已经启动,但一些监控任务仍然出错

所以我决定在管理页面重新启动插件更新(以便与jenkins版本同步),我重新启动了更新搜索,并获取了所有兼容的更新。经过这次安装和重启,一切终于恢复正常。

我认为重要的是添加这个来完成公认的解决方案,因为您不必对配置执行危险的修改。xml。

宗晟
2023-03-14

今天我把詹金斯从2.176.1升级到2.176.2时遇到了类似的问题。不过升级本身并不是问题所在;是插件。

你的帖子只包含日志文件的一个子集,但在我的例子中,我发现一些条目指出插件是问题的原因。日志中的重要数据是:

[...]
Jul 17, 2019 10:13:53 AM jenkins.InitReactorRunner$1 onTaskFailed
SEVERE: Failed Loading plugin SAML Plugin v1.1.2 (saml)
java.io.IOException: SAML Plugin version 1.1.2 failed to load.
 - bouncycastle-api version 2.16.0 is older than required. To fix, install version 2.16.1 or later.
[...]

以及任何其他格式相似、传达相似信息的条目。

我的系统有几个插件,还有待更新。升级服务时(例如,apt upgrade jenkins等),服务通常会作为过程的一部分重新启动。重启让问题暴露出来,表明一些插件无法加载,因为它们现在需要更多最新的依赖项。

这些插件不仅仅会导致错误被记录:它们会引发异常。詹金斯似乎没有准备好处理它们,然后崩溃。访问詹金斯的主页面将显示一个巨大的堆栈跟踪,而没有其他东西。

问题是,为了正确升级插件,您需要Jenkins启动并运行,但有问题的插件首先会阻止Jenkins进入所需的启动并运行状态。

有几个目标:

  1. 让Jenkins达到一个可以初始化并保持运行状态的点
  2. 访问管理员控件以升级有问题的插件
  3. 重新启动Jenkins服务并恢复正常操作

在进入下一节之前,请记住或尝试以下几点:

  1. 默认情况下,Jenkins安装在/var/lib/Jenkins/及其配置下。xml文件位于此目录下。创建此配置的备份。xml文件,然后继续
  2. 你应该有足够的理解,并且合理地相信你有足够相似的问题来证明尝试这个方法是合理的
  3. 关于无法读取config的日志消息。xml是假的;它真正想要说的是,当它试图加载在那里指定的SAML Java类时失败了
  4. 我的设置使用SAML 2.0进行Okta集成,这在b/c中很重要,因为它管理登录,这可能意味着仅仅启动服务可能还不够
  5. 降级并没有解决问题。如果升级是原因,那么在重新启动服务后,使用sudo-apt-get-install-jenkins=2.176.1进行降级可以解决问题,但事实并非如此。
  6. 手动插件安装失败

在我的例子中,主要的违规者是上面显示的SAML插件,因为它控制了我作为管理员登录的能力。由于我使用SAML 2.0将auth与Okta集成,我的config.xml文件有以下节点:

<securityRealm class="org.jenkinsci.plugins.saml.SamlSecurityRealm" plugin="saml@1.1.2">
    [...]
</securityRealm>

文件中删除此部分(还记得备份吗?)导致Jenkins停止尝试加载与SAML相关的Java类,在我的例子中,这允许它启动。但是,由于Okta集成(现在缺失),重新启动服务后无法登录。

安全警告:这在我的情况下有效,因为我在公司防火墙后面,这个工具不能从公司外部访问。如果您的詹金斯实例可以访问互联网,请不要这样做,并寻找其他方法!在您解决问题时,考虑至少暂时阻止您的服务器的互联网访问(例如禁用端口转发规则等)。(这假设您和服务器在同一个局域网中,这样您就不会切断自己的访问。)

在我的例子中,auth是Okta集成(即访问)和Jenkins中基于角色的auth的组合,存储在配置中。xml文件。如果这听起来像你,你应该有类似的东西:

<authorizationStrategy class="com.michelin.cio.hudson.plugins.rolestrategy.RoleBasedAuthorizationStrategy">
    [...]
    <role name="admin" pattern=".*">
    <permissions>
        <permission>hudson.model.View.Delete</permission>
        <permission>hudson.model.Computer.Connect</permission>
        [...]
    </permissions>
    <assignedSIDs>
        <sid>anonymous</sid>
        [...]
    </assignedSIDs>
    </role>
    [...]
</authorizationStrategy>

如上所示,我临时添加了

在此之后重启Jenkins服务(例如sudo system ctl重启jenkins.service

此时,您应该恢复原始的config。xml(例如sudo mv config.xml.backup config.xml),然后再次重新启动Jenkins服务。这将撤消前面几节中指定的更改,您应该回到原始配置,不管是什么配置。

 类似资料:
  • 问题内容: 我的日食没有启动,因为我的计算机有点死机了,所以我不得不强制重新启动它。当我不得不重新启动时,Eclipse是打开的,我相信这很可能是原因。我不知道该如何解决。每当我尝试打开它时,它都会告诉我检查工作区中的.log文件,并显示: http://paste.strictfp.com/26579 而且我不知道如何解决它。请帮忙? 问题答案: 您缺少 第125行的 类,您必须重新安装才能解决

  • 我希望容器在计算机重新启动后自动启动,所以我使用'--restart=always'标志,但它并没有像我预期的那样运行。当我重新启动系统时,容器没有启动。 docker日志信息 添加docker ps-a message,$docker ps-a CONTAINER ID IMAGE命令CREATED STATUS PORTS NAMES a1f4d5471b0a mysql:8.0“docker

  • 我一直在尝试启动NiFi,但每次我这样做,我都得到以下错误:

  • 我在eclipse安装中复制了一些插件(特别是Green和ObjectAid)。 我删除了它们(因为它不起作用),但现在我无法启动eclipse(即使使用)。 我得到: !session 2013-02-08 !Entry org.eclipse.osgi 4 0 201 3-02-08 16:21:17.779!Message Application error!Stack 1 java.lan

  • 我有一个单身演员的等级制度。父母监督和协调孩子。当重新启动协调器时,我需要保持子角色运行。有没有一种方法可以防止子角色在其父角色重新启动时重新启动,或者我应该重新考虑我的角色层次结构?我一直在研究akka的监管策略,但找不到明确的答案。

  • 我最近开始使用,发现它非常有趣。由于我的大多数应用程序都在中,我决定使用团队提供的spring boot starter项目进行快速设置。它附带了autoconf-spring设置,这使得查询endpoint更加容易。 在IDEA中花了几个小时进行项目设置后,我能够运行graphql示例应用程序。但我认为我的servlet仍然没有启用,只有endpoint正在运行,因为默认查询返回。 这是: 这就