org.hibernate.integrator.spi.Integrator: поставщик org.hibernate.search.hcore.impl.HibernateSearchIntegrator не подтип

Я постоянно стремлюсь перейти на Hibernate OGM 5.4 на JBoss WildFly 14.0.0.Final для использования с MongoDB.

Если бы он работал нормально в WildFly 12 и 13 с использованием более ранних версий OGM.

Использование OGM 5.4, JPA 2.2, Hibernate ORM 5.3 и Hibernate Search 5.10

согласно: матрице совместимости

Мое «положение» в Gradle Build:

provision {
   //Optional destination directory:
    destinationDir = file("wildfly-custom")

    configuration = file( 'wildfly-server-provisioning.xml' )

    // Define variables which need replacing in the provisioning configuration!
    variables['wildfly.version'] = '14.0.0.Final'
    variables['hibernate-orm.version'] = '5.3.7.Final'
    variables['hibernate-search.version'] = '5.10.4.Final'
    variables['hibernate-ogm.version'] = '5.4.0.CR1'
}

который используется:

<server-provisioning xmlns="urn:wildfly:server-provisioning:1.1" copy-module-artifacts="true">
    <feature-packs>
        <feature-pack
                groupId="org.wildfly"
                artifactId="wildfly-feature-pack"
                version="${wildfly.version}"/>
        <feature-pack
                groupId="org.hibernate"
                artifactId="hibernate-orm-jbossmodules"
                version="${hibernate-orm.version}"/>
        <feature-pack
                groupId="org.hibernate"
                artifactId="hibernate-search-jbossmodules-orm"
                version="${hibernate-search.version}"/>
        <feature-pack
                groupId="org.hibernate.ogm"
                artifactId="hibernate-ogm-featurepack-mongodb"
                version="${hibernate-ogm.version}"/>
    </feature-packs>
</server-provisioning>

Единица сохранения состояния MongoDB в моем файле persistence.xml:

<persistence-unit name="nOTiFYwellMongoDBPersistenceUnit" transaction-type="JTA">

        <provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>

        <properties>
            <!-- <property name="jboss.as.jpa.providerModule" value="org.hibernate:5.2"/> -->
            <property name="jboss.as.jpa.providerModule" value="org.hibernate:5.3"/>

            <!-- <property name="wildfly.jpa.hibernate.search.module" value="org.hibernate.search.orm:5.8"/> -->
            <property name="wildfly.jpa.hibernate.search.module" value="org.hibernate.search.orm:5.10.4.Final"/>
            <!-- <property name="hibernate.transaction.jta.platform" value="JBossTS"/> -->
            <!-- <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossAS"/> -->
            <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossStandAloneJtaPlatform"/>
            <property name="hibernate.ogm.datastore.provider" value="org.hibernate.ogm.datastore.mongodb.impl.MongoDBDatastoreProvider"/>
            <property name="hibernate.ogm.datastore.grid_dialect" value="org.hibernate.ogm.datastore.mongodb.MongoDBDialect"/>
            <property name="hibernate.ogm.datastore.database" value="notifyWellDB"/>
            <property name="hibernate.ogm.mongodb.host" value="127.0.0.1"/>
        </properties>
    </persistence-unit>

Я скопировал соответствующие модули из сгенерированного WildFly 14.0.0.Final в свой установленный Home Brew.

Когда я включаю свой развернутый EAR, я получаю:

21:52:42,808 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-5) WFLYSRV0027: Starting deployment of "NOTiFYwell.ear" (runtime-name: "NOTiFYwell.ear")
21:52:43,318 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-5) WFLYSRV0207: Starting subdeployment (runtime-name: "NOTiFYwellJAR.jar")
21:52:43,318 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0207: Starting subdeployment (runtime-name: "NOTiFYwellWAR.war")
21:52:44,373 INFO  [org.jboss.as.jpa] (MSC service thread 1-5) WFLYJPA0002: Read persistence.xml for nOTiFYwellMySQLPersistenceUnit
21:52:44,373 INFO  [org.jboss.as.jpa] (MSC service thread 1-5) WFLYJPA0002: Read persistence.xml for nOTiFYwellMongoDBPersistenceUnit
21:52:44,585 WARN  [org.jboss.as.jsf] (MSC service thread 1-6) WFLYJSF0005: Unknown JSF version 'NONE'.  Default version 'main' will be used instead.
21:52:44,841 INFO  [org.jboss.as.jpa] (ServerService Thread Pool -- 20) WFLYJPA0010: Starting Persistence Unit (phase 1 of 2) Service 'NOTiFYwell.ear/NOTiFYwellJAR.jar#nOTiFYwellMongoDBPersistenceUnit'
21:52:44,861 INFO  [org.jboss.weld.deployer] (MSC service thread 1-2) WFLYWELD0003: Processing weld deployment NOTiFYwell.ear
21:52:44,911 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 20) MSC000001: Failed to start service jboss.persistenceunit."NOTiFYwell.ear/NOTiFYwellJAR.jar#nOTiFYwellMongoDBPersistenceUnit".__FIRST_PHASE__: org.jboss.msc.service.StartException in service jboss.persistenceunit."NOTiFYwell.ear/NOTiFYwellJAR.jar#nOTiFYwellMongoDBPersistenceUnit".__FIRST_PHASE__: java.util.ServiceConfigurationError: org.hibernate.integrator.spi.Integrator: Provider org.hibernate.envers.boot.internal.EnversIntegrator not a subtype
    at org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1$1.run(PhaseOnePersistenceUnitServiceImpl.java:128)
    at org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1$1.run(PhaseOnePersistenceUnitServiceImpl.java:104)
    at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:650)
    at org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1.run(PhaseOnePersistenceUnitServiceImpl.java:137)
    at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
    at java.lang.Thread.run(Thread.java:745)
    at org.jboss.threads.JBossThread.run(JBossThread.java:485)
Caused by: java.util.ServiceConfigurationError: org.hibernate.integrator.spi.Integrator: Provider org.hibernate.envers.boot.internal.EnversIntegrator not a subtype
    at java.util.ServiceLoader.fail(ServiceLoader.java:239)
    at java.util.ServiceLoader.access$300(ServiceLoader.java:185)
    at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:376)
    at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
    at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.loadJavaServices(ClassLoaderServiceImpl.java:465)
    at org.hibernate.integrator.internal.IntegratorServiceImpl.<init>(IntegratorServiceImpl.java:40)
    at org.hibernate.boot.registry.BootstrapServiceRegistryBuilder.build(BootstrapServiceRegistryBuilder.java:224)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.buildBootstrapServiceRegistry(EntityManagerFactoryBuilderImpl.java:455)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:199)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:167)
    at org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:32)
    at org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:89)
    at org.jboss.as.jpa.hibernate5.TwoPhaseBootstrapImpl.<init>(TwoPhaseBootstrapImpl.java:39)
    at org.jboss.as.jpa.hibernate5.HibernatePersistenceProviderAdaptor.getBootstrap(HibernatePersistenceProviderAdaptor.java:199)
    at org.wildfly.jpa.hibernateogm5.HibernateOGMPersistenceProviderAdaptor.getBootstrap(HibernateOGMPersistenceProviderAdaptor.java:87)
    at org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl.createContainerEntityManagerFactoryBuilder(PhaseOnePersistenceUnitServiceImpl.java:254)
    at org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl.access$900(PhaseOnePersistenceUnitServiceImpl.java:59)
    at org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1$1.run(PhaseOnePersistenceUnitServiceImpl.java:125)
    ... 9 more

Было замечено несколько других вопросов с той же ошибкой, но ни одно из предложений не помогло.

Спасибо.


person NOTiFY    schedule 26.10.2018    source источник


Ответы (1)


Извините, но на самом деле модули hibernate-ogm-featurepack- * Hibernate OGM 5.4.0.CR1 работают только с WildFly 13.x. Существует открытая проблема для WildFly 14.x: https://hibernate.atlassian.net/browse/OGM-1523.

Обходной путь здесь - установить только модули Hibernate OGM без переопределения модулей Hibernate ORM и Hibernate Search. Поскольку уже предоставленные версии Hibernate ORM и Hibernate Search от WildFly 14.0.x полностью совместимы с Hibernate OGM 5.4.0.CR1 (или, кстати, 5.4.0.Final).

Надеюсь, это вам поможет. Фабио

person fax4ever    schedule 19.11.2018
comment
См. Мой ответ выше. Не удается найти search.orm.5.10.3.Final. JAR (hibernate-search-orm-5.10.3.Final.jar) находится в модулях: org / hibernate / search / orm / main. Любое другое предложение? - person NOTiFY; 23.11.2018
comment
Попробуйте удалить запись wildfly.jpa.hibernate.search.module, поскольку теперь вы используете значение по умолчанию (уже предоставленное WF 14). - person fax4ever; 23.11.2018
comment
Как и предполагалось, я закомментировал запись модуля поиска. По-прежнему не будет развертываться ни с org.hibernate: 5.3, ни с 5.4 в persistence.xml и jboss-deployment-structure.xml. Когда я устанавливаю OGM 5.3, меня вызывает: org.jboss.modules.ModuleNotFoundException: org.hibernate.ogm: 5.3. Которая есть в модулях. - person NOTiFY; 23.11.2018
comment
Вызвано: org.jboss.modules.ModuleNotFoundException: org.hibernate: 5.4 - person NOTiFY; 23.11.2018
comment
В модулях: org / hibernate / main / module.xml говорится: ‹! - представляет Hibernate 5.1.x, позже станет 5.3.x для WF 14 -›. Что-то не хватает для WF 14.0.0.Final? - person NOTiFY; 24.11.2018
comment
Ты прав. Я думаю, что для использования этого обходного пути вам необходимо также изменить hibernate / ogm / jipijapa / module.xml с ‹имя модуля = org.hibernate.orm.jipijapa-hibernate5 slot = $ {module-slot.org.hibernate.short -id} / ›в‹ имя модуля = org.hibernate.jipijapa-hibernate5 / ›. Как я сделал здесь: github.com/hibernate/hibernate-ogm/pull/1100 / files. - person fax4ever; 26.11.2018
comment
Применено вышеуказанное изменение. Тем не менее, я получаю сообщение об ошибке при развертывании EAR: Причина: org.jboss.modules.ModuleNotFoundException: org.hibernate: 5.4. Я отказываюсь от Hibernate OGM для MongoDB. Я потратил на это недели. - person NOTiFY; 01.12.2018