Не получается отправить POST запрос (HttpMessageNotReadableException:JSON parse error)

При попытке отправить POST запрос другому приложению получаю ошибку HttpMessageNotReadableException:JSON parse error:Cannot construct instance of,no String-argument constructor/factory method to deserialize from String

DTO(первое приложение)

@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class MoneyRequestDto {

    @JsonProperty("grant")
    private Integer grant;
}

DTO(второе приложение)

@Data
@AllArgsConstructor
@NoArgsConstructor
public class GrantsResponseDto {

    private int grant;

}

Service(Первое приложение)

@Service
public class GrantTransactionServiceImpl implements GrantTransactionService{
    
    private final RestTemplate restTemplate;
  
    public GrantTransactionServiceImpl(RestTemplateBuilder restTemplateBuilder) {
        restTemplate = restTemplateBuilder.build();
        List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
        converter.setSupportedMediaTypes(Collections.singletonList(MediaType.ALL));
        messageConverters.add(converter);
        restTemplate.setMessageConverters(messageConverters);
    }

    @Override
    public RatingResponseDto getRating(int id) {
        String url = "http://localhost:8088/api/groups/student/rating/" + id;
        ResponseEntity<RatingResponseDto> response = restTemplate.exchange(
                url,
                HttpMethod.GET,
                null,
                new ParameterizedTypeReference<RatingResponseDto>() {});
        RatingResponseDto ratingResponseDto = response.getBody();
        return ratingResponseDto;
    }

    @Override
    public void transferMoney(MoneyRequestDto moneyRequestDto, int id) {
        String url = "http://localhost:8088/api/groups/student/grants/" + id;
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        ResponseEntity<MoneyRequestDto> response = restTemplate.exchange(
                url,
                HttpMethod.POST,
                new HttpEntity<>(MoneyRequestDto.class, headers),
                new ParameterizedTypeReference<MoneyRequestDto>() {});
       response.getBody();
       response.getStatusCode();
    }
}

Service(Второе приложение)

@Service
public class StudentServiceImpl implements StudentService {

    @Autowired
    private StudentRepository studentRepository;

    @Autowired
    private GroupRepository groupRepository;

    @Override
    public RatingDTO getRatingDTO(int id) {
        Student student = studentRepository.getReferenceById(id);
        RatingDTO ratingDTO = new RatingDTO();
        ratingDTO.setId(student.getId());
        ratingDTO.setRating(student.getRating());
        return ratingDTO;
    }

    @Override
    public void getMoney(GrantsResponseDto grantsResponseDto, int id) {

        Student student = studentRepository.getReferenceById(id);
        if (student.getGrant() == null) {
            student.setGrant(grantsResponseDto.getGrant());
            studentRepository.save(student);
        } else {
            student.setGrant(student.getGrant() + grantsResponseDto.getGrant());
        }
        studentRepository.save(student);
    }

JSON

{
        "MoneyRequestDto" : {
            "grant": 3000}
    }
}

Ответы (0 шт):