Spring RestTemplate - ErrorHandling - PullRequest
0 голосов
/ 17 мая 2018

Я звоню в Restservice через RestTemplate с помощью кода ниже:

ResponseEntity response = new RestTemplate (). PostForEntity (url, request, String.class);

всякий раз, когда что-то не так приходит от клиента, он выдает ошибку ниже:

org.springframework.web.client.HttpClientErrorException: 400 Bad Request
    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:85)
    at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:708)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:661)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:621)
    at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:415)

Но когда я нажимаю напрямую на тот же запрос ввода через SOAPUI или Postman, я получаю эту ошибку, как показано ниже:

    <Errors>
   <Error ErrorCode="YFS10003" ErrorDescription="YFS:Invalid Order" ErrorUniqueExceptionId="10.148.201.9815264936514610000000000060" HttpCode="400">
      <Attribute Name="ErrorDescription" Value="YFS:Invalid Order"/>
      <Attribute Name="ErrorUniqueExceptionId" Value="10.148.201.9815264936514610000000000060"/>
      <Attribute Name="ErrorCode" Value="YFS10003"/>
      <Attribute Name="HttpCode" Value="400"/>
   </Error>
</Errors>

Что мне нужно,как я могу сохранить или перехватить выше / исключение / ошибку, которые поступают через клиент в коде и распечатать, чтобы получить более подробные сведения о том, почему возникла ошибка, а не получать общую ошибку как неверный запрос 400.

Есть ли способ преодоленияКласс ResponseErrorHandler?

Заранее спасибо.

1 Ответ

0 голосов
/ 17 мая 2018

Если вы присмотритесь к API RestTemplate, вы можете найти метод RestTemplate # setErrorHandler , в котором вы можете определить собственный ErrorHandler и выполнить нужный код, в вашем случае распечатать сообщение.сам по себе.

По умолчанию RestTemplate использует DefaultResponseErrorHandler , который просто выдаст исключение в случае возникновения ошибки.

...