Как получить реальное сообщение об ошибке JSON при сбое вызова Http.outboundGateway
.
Например, моя программа выполняет HTTP POST
.Операция завершается с ошибкой с кодом ошибки 400 Bad Request
, и настоящее сообщение об ошибке (проверяется почтальоном):
{
"name": [
"This field is needed."
]
}
У меня есть такой канал ошибки:
@Bean
private IntegrationFlow myErrorChannel() {
return f -> f.handle("myErrorHandler", "handle")
....
;
}
иКласс MyErrorHandler
выглядит следующим образом:
@Service
public class MyErrorHandler {
@ServiceActivator
public Message<MessageHandlingException> handle(Message<MessageHandlingException> message) {
...
}
}
Содержит ли MessageHandlingException
реальное сообщение об ошибке?
{
"name": [
"This field is needed."
]
}
Я отладил код ипроверил исключение MessageHandlingException
и, похоже, оно не содержит реального сообщения об ошибке.DetailMessage содержит текст 400 Bad Request
, но я хочу знать реальное сообщение об ошибке.
Как получить реальное сообщение об ошибке?
Редактировать:
Это работает(Я назначаю реальное сообщение об ошибке новой полезной нагрузке):
final RestClientResponseException clientException = (RestClientResponseException) messagingHandlingException.getCause();
payload = clientException.getResponseBodyAsString();