我有一个基于Java的web服务客户端连接到Java web服务(在Axis1框架上实现)
我的日志文件中出现以下异常:
原因:org.xml.sax.saxpasseeption:prolog中不允许包含内容。
位于org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(未知源)
位于org.apache.xerces.util.ErrorHandlerWrapper.fatalError(未知源)
位于org.apache.xerces.impl.XMLErrorReporter.reportError(未知源)
位于org.apache.xerces.impl.XMLErrorReporter.reportError(未知源)
位于org.apache.xerces.impl.XMLScanner.reportFatalError(未知源)
位于org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(未知源)
位于org.apache.xerces.impl.XMLDocumentFragmentScanneImpl.ScandDocument(未知来源)
位于org.apache.xerces.parsers.XML11Configuration.parse(未知源)
位于org.apache.xerces.parsers.XML11Configuration.parse(未知源)
位于org.apache.xerces.parsers.XMLParser.parse(未知源)
位于org.apache.xerces.parsers.AbstractSAXParser.parse(未知源)
位于javax.xml.parsers.SAXParser.parse(未知源)
位于org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
位于org.apache.axis.SOAPPart.getassoapendevelope(SOAPPart.java:696)
在org.apache.axis.Message.getSOAPEnvelope(Message.java:435)上
位于org.apache.ws.axis.security.WSDoAllReceiver.invoke(WSDoAllReceiver.java:114)
访问org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
访问org.apache.axis.SimpleChain.dovising(SimpleChain.java:118)
位于org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
位于org.apache.axis.client.AxisClient.invoke(AxisClient.java:198)
位于org.apache.axis.client.Call.invokeEngine(Call.java:2784)
位于org.apache.axis.client.Call.invoke(Call.java:2767)
位于org.apache.axis.client.Call.invoke(Call.java:2443)
位于org.apache.axis.client.Call.invoke(Call.java:2366)
位于org.apache.axis.client.Call.invoke(Call.java:1812)
这通常是由XML声明前的空白引起的,但它可以是任何文本,如破折号或任何字符。我说经常是由空白引起的,因为人们认为空白总是可以忽略的,但这里不是这样
另一件经常发生的事情是UTF-8bom(字节顺序标记),如果文档作为字符流而不是字节流传递给XML解析器,那么在XML声明被视为空白之前,允许使用
如果使用模式文件(.xsd)验证xml文件,并且其中一个模式文件具有UTF-8 BOM,则也可能发生同样的情况