如何解决 Jenkins 中的 SAXParseException?
Posted
技术标签:
【中文标题】如何解决 Jenkins 中的 SAXParseException?【英文标题】:How to solve the SAXParseException in Jenkins? 【发布时间】:2021-09-26 22:30:39 【问题描述】:我正在尝试使用 Jenkins 部署我的项目,但我总是收到以下错误:
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
我尝试了很多解决方案,但我无法解决这个问题。
我的 xml 文件采用 UTF-8 编码。 我已使用十六进制编辑器读取了我的 xml 文件,并且该文件的开头没有空格。 我已尝试创建一个新的文本文件并将 xml 文件的内容复制到新文档中,并将扩展名从“txt”更改为“xml”。我的 xml 文档是这样开始的:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>...</artifactId>
<groupId>...</groupId>
<version>...</version>
</parent>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<description>...</description>
<packaging>...</packaging>
<name>...</name>
你能帮帮我吗?
【问题讨论】:
【参考方案1】:几乎可以肯定这是文件编码的问题,可能是由于BOM,有关详细信息,请参阅此answer。
你可以做两件事:
从 pom.xml 中删除 BOM 并使用与配置 Jenkins 的 JVM 相同的编码对其进行编码
配置 Jenkins 的 JVM 使用不同的编码,详见this answer
【讨论】:
【参考方案2】:“Prolog 中不允许内容”消息通常意味着 Xerces 开始读取文件的内容,并且它发现的第一件事不是 <
。
问题的一个非常常见的原因是您没有解析您认为的内容。例如,当您将文件的 URI 提供给实际需要文件内容的 API 时,就会发生这种情况。
因此解决方案可能是您错误地调用了解析器。当然,我们无法判断这是否适用于此,因为您还没有告诉我们您是如何调用解析器的。
【讨论】:
以上是关于如何解决 Jenkins 中的 SAXParseException?的主要内容,如果未能解决你的问题,请参考以下文章