Возврат ошибки soap из spring ws

#web-services #soap #spring-ws

#веб-службы #soap #spring-ws

Вопрос:

Я ищу какой-то способ ответить на запрос SOAP с ошибкой soap.

Прямо сейчас я могу создать ошибку только тогда, когда исключение генерируется через AbstractEndpointExceptionResolver .

Я просмотрел, EndpointInterceptorAdapter но я не уверен, как проверить или изменить ответ. Например, если конечная точка возвращает a ValidResponse , но в ответе не было найдено или возвращено значений в списке, я хотел бы ответить на запрос пользователя с помощью a SoapFault вместо этого.

Мы прилагаем усилия, чтобы следовать «Не использовать исключения для управления потоком», но мне не удалось создать a SoapFault из перехватчика или из конечной точки без создания исключения.

Ответ №1:

Ну, я думаю AbstractValidatingInterceptor , приходит на помощь. По крайней мере, из части исходного кода: как обрабатывать ответ interceptor и как с ним бороться WebServiceMessage response .

Имейте в виду, WebServiceMessage что может быть приведено к SoapMessage , и вы можете заполнить свой пользовательский SoapFault , используя его SoapBody :

 SoapBody soapBody = ((SoapMessage) messageContext.getResponse()).getSoapBody();