Я использую ClientHttpRequestInterceptor для сообщения о запросе и ответе RestTemplate. Мне нужно записать ответ в случае исключения, скажем, если шаблон пытается разобрать ответ с неправильным классом.
Вот как включен перехватчик:
@Bean
public RestTemplate restTemplate(ReportingConfiguration reportingConfiguration) {
return new RestTemplateBuilder()
.interceptors(new RestTemplateInterceptor())
.build();
}
Единственный принятый здесь интерфейс - ClientHttpRequestInterceptor. Перехватчик выглядит следующим образом:
@Override
public ClientHttpResponse intercept(HttpRequest req, byte[] body, ClientHttpRequestExecution execution) throws IOException {
...
ClientHttpResponse response = null;
try {
response = execution.execute(request, body);
} catch (Exception e) {
System.out.println("I need to get the response here");
}
...
Я знаю, что с этим классом невозможно получить ответ, не могли бы вы дать альтернативное решение?
это пример исключения: ( пожалуйста, не объясняйте, как избавиться от этого исключения, я знаю, почему я получаю это, я просто хочу зарегистрировать полезную нагрузку на случай, если это произойдет)
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "items" (class com.exapmle.group.web.beans.Response), not marked as ignorable (3 known properties: "text", "status", "set-cookies"])
at [Source: (ByteArrayInputStream); line: 1, column: 11] (through reference chain: com.exapmle.group.web.beans.Response["items"])
at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:61)
at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:823)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1153)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1589)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1567)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:294)