Ошибка инициализации фабрики реактивного режима гибернации в приложении интеграции Vertx/Spring

#spring #vert.x #hibernate-reactive

Вопрос:

Я создал простой пример приложения для интеграции Spring/Vertx и добавил Hibernate Reactive, чтобы заменить существующий API-интерфейс клиента Postgres Reactive.

Исходные коды: https://github.com/hantsy/vertx-sandbox/blob/master/mutiny-spring-hibernate

При запуске приложения и я пытаюсь получить доступ http://localhost:8888/posts, он заблокирован и ничего не возвращает, в фоновой консоли выводится sql.

Когда я запустил коды тестирования, он выдает исключение, компонент PostRepository конструктора 0 SessionFactory не запускается в цикле событий vertx.

 @Bean
public Mutiny.SessionFactory sessionFactory() {
    return Persistence.createEntityManagerFactory("blogPU")
        .unwrap(Mutiny.SessionFactory.class);
}
 

Обновлено:, когда я изменил свои коды обработчиков на следующие.

 this.posts.findAll()
.subscribe()
.with(
    data -> {
        LOGGER.log(Level.INFO, "posts data: {0}", data);
        rc.response().endAndAwait(Json.encode(data));
    },
    rc::fail
);
 

Здесь используйте endAndAwait вместо оригинального end метода, он работает.

Но метод тестирования все равно не удался из-за пустого списка, возвращаемого при доступе к конечной /posts точке .

Когда я изучил официальные руководства howto: https://github.com/vertx-howtos/hibernate-reactive-howto, который создал SessionFactory в Verticle классе, чтобы гарантировать, что они выполняются в одном потоке.

Комментарии:

1. Ваши тесты для меня зеленые, и конечная точка возвращает массив с двумя элементами

2. @Selim на моей машине возвращает пустой массив при тестировании /posts конечной точки.