Ошибка java.lang.ClassNotFoundException: reactor.core.scheduler.TimedScheduler

Karan Khanna спросил: 28 марта 2018 в 04:42 в: java

При написании тестового примера для тестирования службы Flux я сталкиваюсь со следующей ошибкой:

java.lang.ClassNotFoundException: reactor.core.scheduler.TimedScheduler

Мой код похож:

FluxExchangeResult<Event> result = webTestClient.get()
.uri("/events")
.accept(MediaType.TEXT_EVENT_STREAM)
.exchange()
.expectStatus()
.isOk()
.returnResult(Event.class);Flux<Event> eventFlux = result.getResponseBody();
StepVerifier.create(eventFlux)
.expectNextCount(10)
.expectComplete()
.verify();

У меня есть следующие зависимости в pom:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.RELEASE</version>
    <relativePath />
</parent>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
    <groupId>org.projectreactor</groupId>
    <artifactId>reactor-spring</artifactId>
    <version>1.0.1.RELEASE</version>
</dependency>
<dependency>
    <groupId>io.projectreactor</groupId>
    <artifactId>reactor-core</artifactId>
    <version>3.1.6.RELEASE</version>
</dependency>  
<dependency>
    <groupId>io.projectreactor.addons</groupId>
    <artifactId>reactor-test</artifactId>
    <version>3.0.7.RELEASE</version>
</dependency>

Кто-то столкнулся и разрешил подобную проблему? Я взял ссылку из статьи Dzone: https:// dzone .com / статьи / весенне-webflux-а-основного-падла-приложение-часть-1

3 ответа

surya ответил: 28 марта 2018 в 11:17

попробуйте удалить хранилище maven (.m2) и собрать agin.

cricket_007 ответил: 28 марта 2018 в 11:40

reactor-test в настоящее время подходит только к 3.0.7.RELEASE, который включает сам reactor-core:3.0.7.RELEASE.

Вы обнаружите, что классы не найдены, когда версии не совпадают.

Таким образом, вы можете сделать это

<properties>
    <reactor.version>3.0.7.RELEASE</reactor.version>
</properties><dependencies>
    <dependency>
        <groupId>io.projectreactor</groupId>
        <artifactId>reactor-core</artifactId>
        <version>${reactor.version}</version>
    </dependency>  
    <dependency>
        <groupId>io.projectreactor.addons</groupId>
        <artifactId>reactor-test</artifactId>
        <version>${reactor.version}</version>
    </dependency>
</dependencies>

Однако вы можете начать с этой документации, чтобы получить последние совместимые версии.

Karan Khanna ответил: 03 апреля 2018 в 11:51

Я использовал неверную зависимость:

<dependency>
    <groupId>io.projectreactor.addons</groupId>
    <artifactId>reactor-test</artifactId>
    <version>3.0.7.RELEASE</version>
</dependency>

Правильный вариант:

<dependency>
    <groupId>io.projectreactor</groupId>
    <artifactId>reactor-test</artifactId>
    <version>3.1.0.RELEASE</version>
    <scope>test</scope>
</dependency>

Тот, который отображается как верхний поиск для Google, вероятно, для какого-то другого использования.