Content is not allowed in Prolog SAXParserException
Содержимое не разрешено в Prolog SAXParserException
Я пытаюсь вызвать веб-службу, но сталкиваюсь со странным поведением. у нас есть веб-сервис, запущенный на моем сервере, но код недоступен для нас, поэтому мы не можем видеть, что происходит за стеной. Владелец сервиса предоставил веб-интерфейс тестового клиента, который принимает ввод в текстовое поле и покажет ответ для целей тестирования.Это поле ввода принимает входные данные в указанном ниже формате
он отлично работает в этом пользовательском интерфейсе, но когда я пытаюсь вызвать этот веб-сервис через свой java-код, он подключается и авторизуется службой, но когда я пытаюсь вызвать вышеупомянутый метод, он выдает мне приведенное ниже сообщение об ошибке
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)
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
но я не могу выяснить, что происходит не так, в одном я уверен, что есть какая-то проблема во входном XML, поскольку его рабочая находка на тестовой странице пользовательского интерфейса для того же XML
любая помощь в этом отношении очень ценится
Переведено автоматически
Ответ 1
Эта ошибка, вероятно, связана с меткой порядка байтов (BOM), предшествующей фактическому содержимому XML. Вам необходимо проанализировать возвращаемую строку и удалить спецификацию, чтобы SAXParser мог правильно обработать документ.
чтобы просто удалить его, вставьте свой XML-файл в notepad, вы увидите дополнительный символ перед первым тегом. Удалите его и вставьте обратно в свой файл - bof
Ответ 3
Проверьте XML. Это недопустимый XML.
Prolog - это первая строка с информацией о версии xml. Это нормально, если не включать ее в свой xml.
Эта ошибка выдается, когда анализатор считывает недопустимый тег в начале документа. Обычно там, где находится prolog.
например
Root/><документ>
Root<документ>
Ответ 4
Эта ошибка может возникнуть, если в вашем файле wsdl или xsd есть ошибка проверки. Например, у меня тоже возникла такая же проблема при запуске wsdl2java для преобразования моего файла wsdl для создания клиента. В одном из моих xsd это было определено следующим образом