繁体   English   中英

SAXParseException:prolog 中不允许出现内容

[英]SAXParseException: Content is not allowed in prolog

我需要将以下文件添加到我的 Tomcat 的“/conf”目录中:

<?xml version="1.0" encoding="UTF-8"?>
<Context useHttpOnly="false" path="/bbc">
    <Realm className="com.bbc.tomcat.BBCSecurityRealm"/>
</Context>

添加此文件后,Tomcat 启动时出现以下错误”

ERROR ecmdefault util.digester.Digester 18:37:14,477 localhost-startStop-1 : Parse Fatal Error at line 1 column 1: Content is not allowed in prolog.
org.xml.sax.SAXParseException: Content is not allowed in prolog.
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)
    at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1427)

您的xml文件在开始时(在<?xml version="1.0" encoding="UTF-8"?>之前)有一些不可见的字符(很可能是BOM),这在xml中是不允许的。 你可以使用十六进制编辑器查看它。 最简单的解决方法是创建一个空文本文件并将内容复制到其中,将扩展名更改为xml。

检查此答案以获得进一步的帮助

来自http://www.rgagnon.com/javadetails/java-handle-utf8-file-with-bom.html

UTF8文件是一种特殊情况,因为不建议向它们添加BOM,因为它可能会破坏Java之类的其他工具。 实际上,Java假设UTF8没有BOM,因此如果BOM存在,它将不会被丢弃,它将被视为数据。

我有一个类似的问题,但这个参考链接提供了解决方案点。

引用文章。

XML内容开始之前的任何字符都将导致上述错误。

org.xml.sax.SAXParseException: Content is not allowed in prolog error message.

使用另一个标签打开而不是关闭的行出现此错误。

我在xml中也有一行重复输入,我无法追溯这两个错误中的哪一个引发了这个错误,但我猜是错误的结束标记。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM