Страница Java <T>не может пройти через restTemplate.getForEntity - PullRequest
0 голосов
/ 27 октября 2018


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

Page<Myth> findAllBy(Pageable pageable);

, затемкласс обслуживания:

public Page<Myth> findAllBy(Pageable pageable) {
    return mythRepository.findAllBy(pageable);
}

затем контроллер:

@GetMapping("/allPageable")
@ResponseStatus(OK)
public Page<Myth> findAllMythsPageable(@RequestParam Integer size, @RequestParam Integer pageNumber){
    Pageable pageable = new PageRequest(pageNumber, size);
    return mythService.findAllBy(pageable);
}

Второй сервис имеет такую ​​точку входа в класс обслуживания:

public List<Myth> findAllPageable(Integer size,  Integer pageNumber) {
    ResponseEntity<Myth[]> response = restTemplate.getForEntity(ROOT_URI
            + "/allPageable?size="
            + size
            + "&pageNumber="
            + pageNumber,Myth[].class);
    return Arrays.asList(response.getBody());
}


К сожалению, я не могу передать страницу в список, и я получаю сообщение об ошибке:

com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of(...)


Не могли бы вы помочь мне, как я могу преобразовать объект страницы в список, чтобы его можно было прочитать на веб-странице Thymeleaf (где у меня есть цикл foreach)?Или, может быть, вы можете посоветовать мне, как передать объект Page в это:

ResponseEntity<Myth[]> response = restTemplate.getForEntity

К сожалению, когда я делаю:

public Page<Myth> findAllPageable(Integer size,  Integer pageNumber) {
    ResponseEntity<Page[]> response = restTemplate.getForEntity(ROOT_URI
            + "/allPageable?size="
            + size
            + "&pageNumber="
            + pageNumber,Page[].class);
    return response.getBody()[0];
}

Я получаю ту же ошибку ...
Могу ли яиспользовать объект Page в Thymeleaf?
Заранее спасибо за помощь!
Piotr

...