Ответ веб-службы содержит недопустимый символ XML

Мое приложение подключается к веб-сервису rpc/encoded. Я использую Axis 1.4. Когда веб-служба отправляет ответ, он отправляет недопустимый символ, а затем исключение:

http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXParseException: 
  An invalid XML character (Unicode: 0x3) was found in the element content of the document.

Кодировка xml - "ISO-8859-1". Я думаю, что это проблема.

Мой вопрос: есть ли какая-либо конфигурация, которую я могу сделать в своем приложении, чтобы принять этот недопустимый символ?

2 ответа

Решение

Я решил проблему, поместив метод внутри org.apache.axis.handlers.LogHandler для поиска и уничтожения недопустимых символов перед анализом содержимого внутри ответа xml.

Чтобы создать свой собственный LogHandler

Метод поиска и уничтожения нелегальных персонажей

Внутри метода logMessages вашего нового LogHandler поместите следующее: private void logMessages(MessageContext msgContext) throws AxisFault { ... msgContext.setResponseMessage(new Message( stripNonValidXMLCharacters(((Message) msgContext .getResponseMessage()).getSOAPPartAsString()))); ... }

"Мое приложение подключается к веб-службе rpc / encoded".

Это подвох. Служба является "rpc / encoded", которая не соответствует WS-I. Разработчики решили после некоторой жаркой дискуссии в прошлом не исправлять эту ошибку.

Другие вопросы по тегам