@Ostap77

Как переопределить soap сообщений об ошибке?

Возможно ли в SOAP переопределить сообщение об ошибке SOAP-ERROR: Encoding: Violation of encoding rules? У меня эта ошибка возникает когда в поле с типом long передаются не корректные данные.
Задача заключается в том, что на абсолютно любой не валидный запрос сервис должен отвечать определенными заказчиком ошибками.
  • Вопрос задан
  • 279 просмотров
Пригласить эксперта
Ответы на вопрос 1
@frozen_coder
Java-developer
Переопределить можно. Опишите свой тип ошибки в xsd. Например, этот тип будет просто содержать строковое поле с сообщением об ошибке. Дальше работа на сервере. Тут непонятно, что Вы используете.
Я использую jaxb и Spring - наследуюсь от SoapFaultMappingExceptionResolver и реализую метод customizeFault. Он перехватывает exceptions, которые выстреливают в ваших endpoints. В этом методе по exception из ObjectFactory создаю нужный JAXBElement, который затем маршаллируется маршаллером. Тогда будет отправляться сообщение об ошибке с кастомными сообщениями. Для ошибки валидации можно сделать не одну строку с пояснением, а сразу список - для описания всех неверных полей.
Подробнее на англ.:
janvanbesien.blogspot.ru/2008/03/soap-faults-with-...
memorynotfound.com/spring-ws-add-detail-soapfault-...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы