Я использую приведенный ниже код для вызова удаленного API для удаления идентификатора пользователя (http://localhost: 8080 / remove ).
try {
final RestTemplate restTemplate = new RestTemplate();
final UriComponentsBuilder builder =
UriComponentsBuilder.fromUriString(url);
builder.queryParam("acdc_id", acdcId);
ResponseEntity<ServiceResponse> result =
restTemplate.exchange(
builder.toUriString(),
HttpMethod.DELETE,
null,
ServiceResponse.class);
}catch(Exception e){
//exception handling
}
Удаленный API возвращает 200 http-код для успешного выполнения (работает нормально), но когда какой-то идентификатор пользователя будет недоступен, API будет отправлен под пользовательским ответом:
{
"error code": "404",
"error": "USER ID Node not found : xyz"
}
У меня уже есть ServiceResponse. java класс, чтобы получить ответ выше, но шаблон отдыха возвращается с ошибкой ниже в этом случае.
org.springframework.web.client.HttpClientErrorException$NotFound: 404 null
at org.springframework.web.client.HttpClientErrorException.create(HttpClientErrorException.java:85)
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:122)
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:102)
at org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:778)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:736)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:670)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:579)
Мой класс ServiceResponse:
@JsonIgnoreProperties(ignoreUnknown = true)
public class ServiceResponse {
@JsonProperty(value = "error code")
private String errorCode;
@JsonProperty(value = "error")
private String error;
/**
* @return the error.
*/
public String getError() {
return error;
}
/**
* @param error The error to set.
*/
public void setError(final String error) {
this.error = error;
}
/**
* @return the errorCode.
*/
public String getErrorCode() {
return errorCode;
}
/**
* @param errorCode The errorCode to set.
*/
public void setErrorCode(final String errorCode) {
this.errorCode = errorCode;
}
}
Не могли бы вы помочь мне решить эту проблему или предоставить какие-либо рекомендации, как получить правильный ответ от API вместо нулевой ошибки