问题:
...
try {
res = restTemplate.postForObject(url.toString(), requestEntity, String.class);
} catch (RestClientException e){
logger.error("出现异常 {}", e.getMessage(), e);
}
...
原来用的RestClientException进行捕获,打印错误信息,一直只有个500,没有其他详细信息,后面偶然用了下postman调用,发现还有服务端的返回的其他信息。
解决方案:
进行debug调试后,发现里面返回的ClientHttpResponse里面是有完整的返回信息,只是RestClientException没有获取方法,后面从网上看到有用HttpClientErrorException来捕获后台打印完整信息,然后找到了RestClientException的子类RestClientResponseException,其中提供了获取responseBody信息的接口,从而可以打印完整信息
...
try {
res = restTemplate.postForObject(url.toString(), requestEntity, String.class);
} catch (RestClientResponseException e){
logger.error("出现异常 {} ", e.getResponseBodyAsString(), e);
} catch (Exception e){
logger.error("出现异常 {}", e.getMessage(), e);
}
...