#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();