#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
конечной точки.