Невозможно отправить Pojo с помощью запроса PUT RestTemplate - PullRequest
0 голосов
/ 28 декабря 2018

Невозможно отправить Pojo с помощью запроса PUT RestTemplate.

У меня есть служба отдыха, которую мне нужно вызвать из другого приложения.Служба:

@RequestMapping(value = RESET_USER_PASSWORD_URL, method = RequestMethod.PUT, produces = APP_JSON)
public SuccessResponse resetUserPassword(@RequestBody ResetPasswordDTO resetPasswordDTO) throws GenericException {
    logger.info("--->reset Password");
    return new SuccessResponse(userservice.resetUserPassword(resetPasswordDTO));

}

Я звоню по вышеуказанной услуге, используя RestTemplate, для этого мне нужно отправить POJO вместе с запросом PUT.Код с использованием RestTemplate:

public ResponseEntity<SuccessResponse> resetUserPassword(ResetPasswordDTO resetPasswordDTO)
        throws ServiceGenericException {
    ResponseEntity<SuccessResponse> ssoUserResponse = null;
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    HttpEntity<ResetPasswordDTO> requestEntity = new HttpEntity<ResetPasswordDTO>(resetPasswordDTO,headers);

    ssoUserResponse = restTemplate.exchange("http://localhost:5858/api/unsecured/resetpassword", HttpMethod.PUT, requestEntity,
            SuccessResponse.class);
    return ssoUserResponse;
}

Я не могу позвонить.Я получаю исключение ниже: org.springframework.web.client.HttpClientErrorException: 400 null.

POJO, который я хочу отправить:

public class ResetPasswordDTO implements Serializable {

private static final long serialVersionUID = -2372400429023166735L;
private String password;
private String activationCode;
}

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Spring не может проанализировать ваш json в POJO, потому что переменные объявлены как приватные, и у вас нет методов получения / установки.Вам нужно сделать их общедоступными или добавить методы получения / установки в ваш класс ResetPasswordDTO.

Кроме того, я настоятельно рекомендую вам посмотреть на Lombok, это очень просто делает такие вещи.

0 голосов
/ 28 декабря 2018

HttpClientErrorException генерируется при получении ошибки 4xx.Поэтому, если отправленный вами запрос неверен, либо задаете заголовок, либо отправляете неверные данные, вы можете получить это исключениеВы должны проверить свой запрос и проверить информацию о POJO, отправляемом с вашей стороны во время вызова API.

Если вы все еще не можете точно определить проблему, пожалуйста, поделитесь своим POJO, деталями запроса и полной трассировкой стека.

Для получения более подробной информации о коде ошибки HTTP 400 вы можете сослаться на 400 BAD запрос Значение кода ошибки HTTP?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...