Found the answer in the different post on here. It was not the accepted answer which it should be
Spring RestTemplate with paginated API
the answer by @rvheddeg is correct. You just need to put @JsonCreator and provide a constructor with all the properties, here is my RestResponsePage class that fixes the issue.
class RestResponsePage<T> extends PageImpl<T> {
private static final long serialVersionUID = 3248189030448292002L;
@JsonCreator(mode = JsonCreator.Mode.PROPERTIES)
public RestResponsePage(@JsonProperty("content") List<T> content, @JsonProperty("number") int number, @JsonProperty("size") int size,
@JsonProperty("totalElements") Long totalElements, @JsonProperty("pageable") JsonNode pageable, @JsonProperty("last") boolean last,
@JsonProperty("totalPages") int totalPages, @JsonProperty("sort") JsonNode sort, @JsonProperty("first") boolean first,
@JsonProperty("numberOfElements") int numberOfElements) {
super(content, PageRequest.of(number, size), totalElements);
}
public RestResponsePage(List<T> content, Pageable pageable, long total) {
super(content, pageable, total);
}
public RestResponsePage(List<T> content) {
super(content);
}
public RestResponsePage() {
super(new ArrayList<T>());
}
}