java - org.xml.sax.SAXParseException : Content is not allowed in prolog

标签 java xml

我有一个基于 Java 的 Web 服务客户端连接到 Java Web 服务(在 Axis1 框架上实现)。

我的日志文件中出现以下异常:

Caused by: org.xml.sax.SAXParseException: Content is not allowed in prolog.
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at javax.xml.parsers.SAXParser.parse(Unknown Source)
    at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
    at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
    at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
    at org.apache.ws.axis.security.WSDoAllReceiver.invoke(WSDoAllReceiver.java:114)
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:198)
    at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
    at org.apache.axis.client.Call.invoke(Call.java:2767)
    at org.apache.axis.client.Call.invoke(Call.java:2443)
    at org.apache.axis.client.Call.invoke(Call.java:2366)
    at org.apache.axis.client.Call.invoke(Call.java:1812)

最佳答案

这通常是由 XML 声明前的空格引起的,但它可能是任何文本,如破折号或任何字符。我说通常是由空白引起的,因为人们认为空白总是可以忽略的,但这里并非如此。


另一件经常发生的事情是 UTF-8 BOM(字节顺序标记),如果文档是作为字符流而不是字节流传递给 XML 解析器。

如果使用架构文件 (.xsd) 验证 xml 文件并且其中一个架构文件具有 UTF-8 BOM,也会发生同样的情况。

关于java - org.xml.sax.SAXParseException : Content is not allowed in prolog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5138696/

相关文章:

java - 部署 Jenkins 时数据库服务器问题

java - 简单但反复出现的命名问题

java - 在 Android-Java 中读取数组时出现奇怪的行为

c# - 什么是适合 Web 服务的 XML 类型?

java - 如何通过 stAX 或 SAX 从 xml 字符串获取特定事件/属性内容

java - 将 null 添加到空 TreeSet 引发 NullPointerException

java - AKKA - 如何对处理 TCP 连接的 actor 进行单元测试?

xml - 错误!关于我使用的所选 XPath 有什么建议吗?

xml - ruleML-优点/缺点?

android - 如何在 ImageView 中加载随机图像? (安卓)