java在使用RestTemplate时如何映射ResponseEntity中的响应对象?
比方说,我有两个微服务MS1和MS2,我正在使用RestClient从MS1呼叫MS2
MS1中的代码:
public ResponseEntity<ResponeTypeOne> saveResponse(List<Review> request) {
String url = getReviewRestServiceEndPoint() + "/ms2/save/";
return restTemplate.postForEntity(url, request, ResponeTypeOne.class);
}
MS2中的代码:从MS2,我想发送不同的自定义错误对象(仅供参考:在异常情况下)
@ExceptionHandler(MyCustomException.class)
public ResponseEntity<ErrorOutputMessage> handleException(MyCustomException ex){
return new ResponseEntity<>(new ErrorOutputMessage(ex.getCode(),ex.getMessage()),HttpStatus.BAD_REQUEST);
}
谁能告诉我ResponeTypeOne
和ErrorOutputMessage
的映射在以下情况下是如何发生的:
- When fields in both objects are same.
- When fields in both objects are different.
# 1 楼答案
RestTemplate
有DefaultResponseErrorHandler
,当出现客户机/服务器错误时会引发异常(不成功的状态代码)