Le contenu n'est pas autorisé dans le Prologue de SAXParserException
Je suis en train d'appeler un service web, mais face à un comportement étrange. nous avons un service web en cours d'exécution sur mon serveur, mais le code n'est pas ouvert pour nous, donc ne peut pas voir ce qui se passe derrière le mur
Le propriétaire du service ont exposé basé sur le web de test client INTERFACE utilisateur de prendre une entrée dans une zone de texte et montrer la réponse à l'objectif de test.Cette zone de saisie est prise de l'entrée dans le mentionné ci-dessous en format
<CONTENT>
<CONTENTID></CONTENTID>
<DOCUMENTID>DRI2</DOCUMENTID>
<LOCALECODE>en_US</LOCALECODE>
<LATEST_VERSION>false</LATEST_VERSION>
<INCREASEVIEWCOUNT>false</INCREASEVIEWCOUNT>
<ACTIVITY_TYPE></ACTIVITY_TYPE>
</CONTENT>
sa fonctionne bien sur cette INTERFACE, mais quand j'essaie de les appeler ce service web par le biais de mon code java de se connecté en tant que bien arriver autorisé par le service, mais lorsque je tente d'appeler la méthode ci-dessus, il me donne le message d'erreur ci-dessous
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
ci-dessous est le code pour générer le 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>");
et le XML généré est comme ci-dessous
<CONTENT><CONTENTID></CONTENTID><DOCUMENTID>DRI2</DOCUMENTID><LOCALECODE>en_US</LOCALECODE><LATEST_VERSION>false</LATEST_VERSION><INCREASEVIEWCOUNT>false</INCREASEVIEWCOUNT><ACTIVITY_TYPE></ACTIVITY_TYPE></CONTENT>
j'ai même fait du timing de la chaîne générée par quelque chose comme ci-dessous
inputXml.toString().trim().replaceFirst("^([\\W]+)<","<");
mais incapable de savoir ce qui se passe mal,une chose que je suis sûr qu'il y est un problème dans le XML d'entrée que son travail à trouver sur la Page de test de l'INTERFACE utilisateur pour le même XML
aucune aide à cet égard est beaucoup appricated
- Je reçois ce genre de message d'erreur lors de l'enregistrement de fichiers XML en UTF-8 avec BOM. Où et comment avez-vous initialiser le inputXML objet?
- Essayez d'ajouter ce à le haut
<?xml version="1.0" encoding="UTF-8"?>
- J'ai aussi essayé cette chose rien n'y fait 🙁
- c'est la méthode de service fournies par eux et qui prend 2 paramètres à la fois comme type de chaîne
- double possible de org.xml.sax.SAXParseException: le Contenu n'est pas autorisé dans le prologue
Vous devez vous connecter pour publier un commentaire.
Cette erreur est probablement liée à une marque d'ordre des octets (BOM) avant le contenu XML. Vous devez analyser la Chaîne retournée et jeter la NOMENCLATURE, donc SAXParser peut traiter le document correctement.
Vous trouverez une solution possible ici.
ef bb bf
marqué les 3 premiers octetstout simplement de le supprimer, coller votre fichier xml dans le bloc-notes, vous verrez le caractère supplémentaire avant la première balise. Supprimer & coller dans votre fichier - bof
Vérifier le XML. Ce n'est pas un xml valide.
Prolog est la première ligne avec xml version info. Ok pas de
l'inclure dans votre xml.
Cette erreur est renvoyée lorsque l'analyseur lit d'une balise incorrecte au début du document. Normalement le prologue réside.
par exemple
Cette erreur peut venir si il y a erreur de validation dans votre wsdl ou le fichier xsd. Par exemple, j'ai trop eu le même problème lors de l'exécution de wsdl2java de convertir mon fichier wsdl pour générer le client.
Dans un de mes xsd il a été défini comme ci-dessous
Où la schemaLocation était vide. En fournissant les données appropriées dans schemaLocation résolu mon problème.
J'ai fait face à la même question. Notre application s'exécutant sur quatre serveurs d'applications et en raison de la non valide emplacement du schéma mentionné sur l'un des WSDL du service web, suspendu par les threads sont générés sur les serveurs . Le appliucations descendit fréquemment. Après correction de l'Emplacement du schéma , la question ai résolu.