You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins从2.89.2升级到2.107.3时XML版本报错求助

Jenkins升级后XML 1.1解析错误的替代解决方法

我之前也碰到过类似的版本兼容性问题,结合你的环境(CentOS 6.8 + Java 1.8.0_45 + Jenkins 2.107.3),可以试试下面几个不用手动修改config.xml的方案:

原因分析

这个报错本质是Jenkins 2.107.3默认生成的config.xml用了XML 1.1规范,但你环境里的MXParser(XStream依赖的XML解析器)版本较旧,仅支持XML 1.0,导致启动时解析失败。


方案1:添加JVM启动参数强制XML 1.0输出

这是最简便的方法,不需要修改Jenkins内部文件:

  1. 找到Jenkins的启动配置文件,CentOS 6.8下通常是/etc/sysconfig/jenkins或者/etc/init.d/jenkins
  2. 在JENKINS_JAVA_OPTIONS(或类似参数)中加入:
    -Dxstream.xml.version=1.0
    
  3. 保存配置后重启Jenkins服务:
    service jenkins restart
    
    这样Jenkins后续生成的配置文件都会默认用XML 1.0,彻底避免版本不兼容问题。

方案2:升级XmlPullParser依赖库

如果想保留XML 1.1的支持,可以替换Jenkins的XPP3库:

  1. 停止Jenkins服务:service jenkins stop
  2. 进入Jenkins的WEB-INF/lib目录(通常在/var/lib/jenkins/war/WEB-INF/lib)
  3. 找到旧的xpp3-*.jar文件(比如xpp3-1.1.4b.jar),替换为支持XML 1.1的版本,比如xpp3-1.1.4c.jar
  4. 同时确保xstream-*.jar版本和Jenkins 2.107.3兼容(建议使用官方对应版本的XStream)
  5. 重启Jenkins服务,此时解析器就能识别XML 1.1格式了。

方案3:升级Java版本

你的Java 1.8.0_45确实比较老旧,新版本的OpenJDK 8(比如1.8.0_301及以上)自带的XML解析器已经支持XML 1.1规范:

  1. 在CentOS 6.8上安装新版OpenJDK 8(注意要处理好系统依赖)
  2. 修改Jenkins配置文件中的Java路径,指向新安装的JDK
  3. 重启Jenkins,就能正常解析XML 1.1的config.xml了。

如果以上方案都暂时无法实施,手动修改config.xml的XML版本到1.0其实是完全可靠的长期方案——XML 1.0和1.1在Jenkins的配置场景下几乎没有功能差异,不会影响服务的正常运行。

内容的提问来源于stack exchange,提问作者Carlos.A.Lopez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:38:17