AxisFault: что означает Server.userException? - PullRequest
14 голосов
/ 30 сентября 2010

Что означает следующее AxisFault?

Означает ли это, что:

  • Запрос, который выдается и принимается сервером и сервером выдает (необработанное) исключение, и поэтому исключение возвращается клиенту.

или

  • Моему веб-приложению не удается создать запрос SOAP (поэтому запрос даже не отправляется из клиентского приложения)

NB. Я новичок в веб-сервисах

AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode:
 faultString: org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x1c) was found in the element content of the document.
 faultActor:
 faultNode:
 faultDetail:
        {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x1c) was found in the element content of the document.
        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.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.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 org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
        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)

1 Ответ

11 голосов
/ 01 октября 2010

Если ваше приложение соблюдает расширяемость кодов ошибок SOAP, то это означает, что ваш сервер получил сообщение SOAP, но не смог его проанализировать.

Сообщение invalid XML character (Unicode: 0x1c) was found in the element content of the document должно быть хорошим индикатором того, что не так.

Ваш сервер выдает исключение, которое Axis отправляет клиенту как сбой SOAP. FaultCode указывает на ошибку сервера. Обратите внимание, что код ошибки Server.userException не является стандартным значением, это просто более конкретный тип кода ошибки сервера.

Значения кода ошибки SOAP по умолчанию определяются расширяемым образом, что позволяет определять новые значения кода ошибки SOAP. Механизм использует точку (.) Для определения более конкретных типов ошибок. Это означает, что то, что слева от точки, является более общим значением кода ошибки, чем значение справа. Смотрите спецификации здесь .

Так что я думаю, что Server.userException является подходящим способом сказать, что исключение произошло на сервере, но это не что-то строго связанное с сервером, а то, что отправил клиент (.userException). По крайней мере, это то, что я думаю, авторы имели в виду. Это для вас, чтобы обнаружить: D.

...