有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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>

你能帮我吗


共 (2) 个答案

  1. # 1 楼答案

    消息“Content is not allowed in prolog”通常意味着Xerces开始读取文件的内容,它发现的第一件事不是<

    问题的一个常见原因是您没有解析您认为是的内容。例如,当您将文件的URI提供给实际需要文件内容的API时,就会发生这种情况

    因此,解决方案可能是错误地调用了解析器。当然,我们无法判断这是否适用于这里,因为您还没有告诉我们如何调用解析器

  2. # 2 楼答案

    几乎可以肯定,这是文件编码的问题,可能是由于BOM,有关详细信息,请参阅此answer

    你可以做两件事:

    1. 从pom中删除BOM。xml并使用与Jenkins的JVM配置相同的编码对其进行编码

    2. 配置Jenkins的JVM以使用不同的编码,有关详细信息,请参见this answer