Spring 3 RestTemplate в WebClient - PullRequest
       133

Spring 3 RestTemplate в WebClient

0 голосов
/ 29 мая 2020

Я пытаюсь перенести Spring версии 3 RestTemplate с помощью WebClient. Но я получаю эту ошибку компиляции при выполнении миграции.

cannot access org.springframework.core.ParameterizedTypeReference

Вот код Spring RestTemplate, который я пытаюсь изменить

private ResponseEntity<Assignment[]> getAssignmentsPage(RestTemplate restTemplate, HttpEntity<Object> httpEntity, String url) {

            ResponseEntity<Assignment[]> responseEntity =
                    restTemplate.exchange(url, HttpMethod.GET, httpEntity, Assignment[].class);        

            return responseEntity;
    }

Код заменен на WebClient

Flux<Assignment[]> quoteFlux = WebClient.create()
                .get()
                .uri(url)
                .retrieve()
                .bodyToFlux(Assignment[].class);

Вот конфигурации файла POM

<properties>
    <java-version>1.8</java-version>
    <org.springframework-version>3.1.1.RELEASE</org.springframework-version>
    <org.aspectj-version>1.6.9</org.aspectj-version>
</properties><dependencies>
    <!-- Spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${org.springframework-version}</version>
        <exclusions>                
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${org.springframework-version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${org.springframework-version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-core</artifactId>
        <version>${org.springframework-version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>${org.springframework-version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>${org.springframework-version}</version>
    </dependency>
    <!-- added       -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-webflux</artifactId>
        <version>2.3.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.projectreactor</groupId>
        <artifactId>reactor-spring</artifactId>
        <version>1.0.1.RELEASE</version>
    </dependency>

1 Ответ

0 голосов
/ 29 мая 2020

Ваш Flux должен быть типа

ParameterizedTypeReference<Assignment[]>(){}

Пожалуйста, проверьте это: https://github.com/spring-projects/spring-framework/issues/20195

...