java如何解决Jenkins中的SAXParseException?
我正试图与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 楼答案
消息“Content is not allowed in prolog”通常意味着Xerces开始读取文件的内容,它发现的第一件事不是
<
问题的一个常见原因是您没有解析您认为是的内容。例如,当您将文件的URI提供给实际需要文件内容的API时,就会发生这种情况
因此,解决方案可能是错误地调用了解析器。当然,我们无法判断这是否适用于这里,因为您还没有告诉我们如何调用解析器
# 2 楼答案
几乎可以肯定,这是文件编码的问题,可能是由于BOM,有关详细信息,请参阅此answer
你可以做两件事:
从pom中删除BOM。xml并使用与Jenkins的JVM配置相同的编码对其进行编码
配置Jenkins的JVM以使用不同的编码,有关详细信息,请参见this answer