Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Content is not allowed in Prolog SAXParserException

I am trying to call a web service but facing a strange behavior. we have a web-service running on my server but the code is not open to us so can not see what going on behind the wall The owner of the service have exposed web based test client UI which take input in a text box and will show the response to testing purpose.This input box is taking the input in the below mentioned format

<CONTENT>  <CONTENTID></CONTENTID>  <DOCUMENTID>DRI2</DOCUMENTID>  <LOCALECODE>en_US</LOCALECODE>  <LATEST_VERSION>false</LATEST_VERSION>  <INCREASEVIEWCOUNT>false</INCREASEVIEWCOUNT>  <ACTIVITY_TYPE></ACTIVITY_TYPE> </CONTENT> 

its working fine on this UI but when i am trying to call this web service through my java code its getting connected as well getting authorized by the service but when i trying to call the above method it giving me the below error message

AxisFault  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException  faultSubcode:   faultString: org.xml.sax.SAXParseException: Content is not allowed in prolog.  faultActor:   faultNode:   faultDetail:   {http://xml.apache.org/axis/}stackTrace: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 org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)  at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)  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.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)  at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)  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)  at com.inquira.imwows.generated.ContentServicesSoapBindingStub.getContentRecord(ContentServicesSoapBindingStub.java:262)  at com.inquira.prep.GetWebService.getcontentRecord(GetWebService.java:87)  at com.inquira.prep.TestWs.main(TestWs.java:13)   {http://xml.apache.org/axis/}hostname:umeshawasthi  org.xml.sax.SAXParseException: Content is not allowed in prolog.  at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)  at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:701)  at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)  at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)  at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)  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)  at com.inquira.imwows.generated.ContentServicesSoapBindingStub.getContentRecord(ContentServicesSoapBindingStub.java:262)  at com.inquira.prep.GetWebService.getcontentRecord(GetWebService.java:87)  at com.inquira.prep.TestWs.main(TestWs.java:13) 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 org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)  at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)  at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)  at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)  ... 11 more 

below is the code for generating the required XML

inputXml.append("<CONTENT>");    inputXml.append("<CONTENTID>").append("</CONTENTID>");    inputXml.append("<DOCUMENTID>").append("DRI2").append("</DOCUMENTID>");    inputXml.append("<LOCALECODE>").append("en_US").append("</LOCALECODE>");    inputXml.append("<LATEST_VERSION>").append("false").append("</LATEST_VERSION>");    inputXml.append("<INCREASEVIEWCOUNT>").append("false").append("</INCREASEVIEWCOUNT>");    inputXml.append("<ACTIVITY_TYPE>").append("</ACTIVITY_TYPE>");    inputXml.append("</CONTENT>"); 

and the generated XML is as below

<CONTENT><CONTENTID></CONTENTID><DOCUMENTID>DRI2</DOCUMENTID><LOCALECODE>en_US</LOCALECODE><LATEST_VERSION>false</LATEST_VERSION><INCREASEVIEWCOUNT>false</INCREASEVIEWCOUNT><ACTIVITY_TYPE></ACTIVITY_TYPE></CONTENT> 

i even did timing of the generated string something as below

inputXml.toString().trim().replaceFirst("^([\\W]+)<","<"); 

but unable to find out whats going wrong,one thing i am sure there is some problem in the input XML as its working find on the test Page UI for the same XML

any help in this regard is much appricated

like image 564
Umesh Awasthi Avatar asked Dec 31 '10 09:12

Umesh Awasthi


People also ask

What is SAXParseException in Java?

public class SAXParseException extends SAXException. Encapsulate an XML parse error or warning. This module, both source code and documentation, is in the Public Domain, and comes with NO WARRANTY.

Which of the following class contains information about general sax errors and warnings?

Class SAXException. Encapsulate a general SAX error or warning.


1 Answers

This error is probably related to a byte order mark (BOM) prior to the actual XML content. You need to parse the returned String and discard the BOM, so SAXParser can process the document correctly.

You will find a possible solution here.

like image 143
weltraumpirat Avatar answered Oct 11 '22 10:10

weltraumpirat