El contenido no está permitido en Prolog SAXParserException


Estoy tratando de llamar a un servicio web, pero frente a un comportamiento extraño. tenemos un servicio web que se ejecuta en mi servidor, pero el código no está abierto para nosotros, así que no puedo ver lo que sucede detrás de la pared El propietario del servicio ha expuesto la interfaz de usuario del cliente de prueba basada en la web que toma la entrada en un cuadro de texto y mostrará la respuesta al propósito de la prueba.Este cuadro de entrada está tomando la entrada en el formato mencionado a continuación

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

Está funcionando bien en esta interfaz de usuario, pero cuando estoy tratando de llamar a este servicio web a través de mi código java se está conectando, así conseguir autorizado por el servicio, pero cuando trato de llamar al método anterior que me da el siguiente mensaje de error

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

A continuación se muestra el código para generar el XML requerido

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>");

Y el XML generado es el siguiente

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

Incluso hice el tiempo de la cadena generada algo como a continuación

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

Pero incapaz de averiguar lo que va mal, una cosa que estoy seguro de que hay algún problema en el XML de entrada como su encontrar de trabajo en la interfaz de usuario de la página de prueba para el mismo XML

Cualquier ayuda en este sentido es mucho appricated

Author: Umesh Awasthi, 2010-12-31

5 answers

Este error probablemente esté relacionado con una marca de orden de bytes (BOM) anterior al contenido XML real. Necesita analizar la cadena devuelta y descartar la lista de materiales, para que SAXParser pueda procesar el documento correctamente.

Encontrará una posible solución aquí.

 59
Author: weltraumpirat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-12-31 12:10:39

Para simplemente eliminarlo, pegue su archivo xml en el bloc de notas, verá el carácter adicional antes de la primera etiqueta. Retírelo y péguelo en su archivo-bof

 3
Author: phill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-26 09:59:47

Compruebe el XML. No es un xml válido.

Prolog es la primera línea con información de la versión xml. Está bien no inclúyelo en tu xml.

Este error se produce cuando el analizador lee una etiqueta no válida al inicio del documento. Normalmente donde reside el prolog.

P. Ej.

  1. Root / >
  2. Root
 2
Author: Sorter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-06 09:44:21

Este error puede producirse si hay un error de validación en su archivo wsdl o xsd. Por ejemplo, yo también tuve el mismo problema mientras ejecutaba wsdl2java para convertir mi archivo wsdl para generar el cliente. En uno de mis xsd se definió como abajo

<xs:import schemaLocation="" namespace="http://MultiChoice.PaymentService/DataContracts" />

Donde el schemaLocation estaba vacío. Al proporcionar los datos adecuados en schemaLocation resuelto mi problema.

<xs:import schemaLocation="multichoice.paymentservice.DataContracts.xsd" namespace="http://MultiChoice.PaymentService/DataContracts" />
 2
Author: biswa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-10 18:06:53

Me enfrenté al mismo problema. Nuestra aplicación se ejecuta en cuatro servidores de aplicaciones y debido a la ubicación de esquema no válida mencionada en uno de los WSDL del servicio web, se generan hilos colgados en los servidores . Las aplicaciones bajaban con frecuencia. Después de corregir la ubicación del esquema, el problema se resolvió.

 0
Author: Swapnil Galgate,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-22 22:23:58