2012-06-01 58 views
0

当使用SOAP请求调用web服务时,它会给出下面的解析错误。 我有检查请求的序言它的权利没有空白或破折号。即使它会引起以下错误java中的SAX解析器问题

org.xml.sax.SAXParseException: Content is not allowed in prolog. 
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Un 
    known 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.dispat 
ch(Unknown Source) 
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un 
known 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 org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Sour 
ce) 
    at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source) 
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:198) 
    at requestModel.SimpleCheckMail.checkMail(SimpleCheckMail.java:162) 
    at model.InboxDataBean.prepareList(InboxDataBean.java:97) 
    at model.InboxDataBean.getemailList(InboxDataBean.java:207) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. 
java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces 
sorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at javax.el.BeanELResolver.getValue(BeanELResolver.java:87) 
    at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELR 
esolver.java:176) 
    at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELRe 
solver.java:203) 
    at org.apache.el.parser.AstValue.getValue(AstValue.java:169) 
    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:1 
89) 
    at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpress 
ion.java:109) 
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper. 
java:194) 
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper. 
java:182) 
    at javax.faces.component.UIData.getValue(UIData.java:731) 
    at javax.faces.component.UIData.getDataModel(UIData.java:1798) 
    at javax.faces.component.UIData.setRowIndexWithoutRowStatePreserved(UIDa 
ta.java:484) 
    at javax.faces.component.UIData.setRowIndex(UIData.java:473) 
    at com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRen 
derer.java:81) 
    at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.jav 
a:820) 
    at javax.faces.component.UIData.encodeBegin(UIData.java:1118) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1754) 
    at javax.faces.render.Renderer.encodeChildren(Renderer.java:168) 
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase. 
java:845) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759) 
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView 
(FaceletViewHandlingStrategy.java:401) 
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewH 
andler.java:131) 
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePha 
se.java:121) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:410) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl 
icationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF 
ilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV 
alve.java:224) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV 
alve.java:169) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica 
torBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j 
ava:168) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j 
ava:98) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java: 
927) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal 
ve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav 
a:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp 
11Processor.java:987) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
AbstractProtocol.java:579) 
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoin 
t.java:1805) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec 
utor.java:885) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor 
.java:907) 
    at java.lang.Thread.run(Thread.java:619) 

请让我知道什么问题......这个错误.... thanx提前


雅....所有你是正确的....但我得到的是,它是一个SOAP请求,我已经仔细看到请求没有坏字符.....但问题是,当我调用Web服务通过肥皂请求它给null为答复,所以我得到错误..... 只要Webservice正常工作......这现在正常工作....感谢你们所有人

回答

0

解析器在实际XML本身启动之前看到字符数据。要么确保你的XML在XML启动之前不包含任何东西,要么让你的SAX解析器忽略这个......

1

这意味着在<?xml ...中仔细观察之前有一些东西在xml中。还要检查是否有不可见的字符(你可以在任何HEX编辑器中进行)。有时窗口记事本在文件开头添加他的标记。

0

尝试显示您实际解析的数据。也许有些坏字符会在xml开头之前插入,或者您没有阅读正确的文件。

0

这可能是因为BOM,如果您的XML文件存储为UTF-8(它可能是)。

Here,你有一个InputStream的例子,摆脱了BOM。