title: JsonMappingException when testing endpoints with Pageable field
body: <p>I need to call an endpoint which expects a <code>Pageable</code> field:</p>
  
  <pre><code>@GetMapping
  public Page&lt;ProductDTO&gt; listProducts(Pageable pageable) {
      return productService.findProducts(pageable); 
  }
  </code></pre>
  
  <p>In my test I have this code:</p>
  
  <pre><code>MultiValueMap&lt;String, String&gt; parameters = new LinkedMultiValueMap&lt;&gt;();
  parameters.add("page", String.valueOf(0));
  URI url = defaultURI(port, "/products", parameters);
  
  ParameterizedTypeReference&lt;RestResponsePage&lt;ProductDTO&gt;&gt; type = new ParameterizedTypeReference&lt;RestResponsePage&lt;ProductDTO&gt;&gt;() {};
  ResponseEntity&lt;RestResponsePage&lt;ProductDTO&gt;&gt; response = restTemplate.exchange(url.toString(), HttpMethod.GET, httpEntity, type);
  </code></pre>
  
  <p><code>PageImpl</code> contains no default constructor so to avoid that problem I created a class like the following one to pass to the <code>ParameterizedTypeReference</code>:</p>
  
  <pre><code>@JsonIgnoreProperties(ignoreUnknown = true) @Getter @Setter
  public class RestResponsePage&lt;T&gt; extends PageImpl&lt;T&gt; implements Serializable {
  
      private static final long serialVersionUID = 3844794233375694591L;
  
      @JsonCreator(mode = JsonCreator.Mode.PROPERTIES)
      public RestResponsePage(@JsonProperty("content") List&lt;T&gt; content,
                          @JsonProperty("number") int page,
                          @JsonProperty("size") int size,
                          @JsonProperty("totalElements") long totalElements) {
          super(content, new PageRequest(page, size), totalElements);
      }
  
      public RestResponsePage(List&lt;T&gt; content, Pageable pageable, long totalElements) {
          super(content, pageable, totalElements);
      }
  
      public RestResponsePage(List&lt;T&gt; content) {
          super(content);
      }
  
      public RestResponsePage() {
          super(new ArrayList&lt;T&gt;());
      }
  }
  </code></pre>
  
  <p>The problem is that I still get the following error:</p>
  
  <pre><code>Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of org.springframework.data.domain.Pageable: abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type information
   at [Source: java.io.PushbackInputStream@75564689; line: 38, column: 16] (through reference chain: com.shaunyl.util.ResponsePageImpl["pageable"])
  </code></pre>
  
  <p>Why it keeps saying that I am passing an abstract class? <code>ResponsePageImpl</code> is a class not an abstract class.</p>
  
  <p>Thank you</p>