JBoss WildFly 11, Hibernate ORM 5.2, OGM 5.3 и MongoDB — OgmIntegrator не найден

Медленно продвигаюсь, пытаясь заставить Hibernate ORM 5.2 работать с OGM 5.3, поэтому я могу использовать JPA с MongoDB.

Чтобы удалить ошибку поиска JNDI, указанную в часто задаваемых вопросах OGM:

При использовании Hibernate OGM поверх WildFly я получаю JndiException. Что не так? Если вы видите исключение JndiException, говорящее «Невозможно найти имя JNDI [---PlaceHolderDSForOGM---]», ваше приложение, вероятно, не может получить доступ к модулям сервера приложений Hibernate OGM.

Чтобы изменить это, добавьте следующую строку в файл META-INF/MANIFEST.MF вашего архива (адаптируйте его в соответствии с выбранным вами хранилищем данных):

Зависимости: службы org.hibernate:ogm, службы org.hibernate.ogm.mongodb В качестве альтернативы вы можете настроить это с помощью дескриптора jboss-deployment-structure.xml. См. справочное руководство, чтобы узнать больше.

Я создал: jboss-deployment-structure.xml

содержащий:

<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="org.hibernate.ogm" slot="5.3" services="export" />
            <module name="org.hibernate.ogm.mongodb" slot="5.3" services="export" />
        </dependencies>
    </deployment>
</jboss-deployment-structure>

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

17:58:42,926 ОШИБКА [org.jboss.as.controller.management-operation] (потоки запросов внешнего управления — 1) WFLYCTL0013: операция («добавить») не удалась — адрес: ([(«развертывание» => «NOTiFYwell .ear")]) - описание ошибки: {"WFLYCTL0080: Failed services" => {"jboss.persistenceunit.\"NOTiFYwell.ear/NOTiFYwellJAR.jar#NOTiFYwellMongoDBPersistenceUnit\".FIRST_PHASE" => «java.util.ServiceConfigurationError: org.hibernate.integrator.spi.Integrator: поставщик org.hibernate.ogm.service.impl.OgmIntegrator не найден. Причина: java.util.ServiceConfigurationError: org.hibernate.integrator.spi.Integrator: Поставщик org.hibernate.ogm.service.impl.OgmIntegrator не найден"}} 17:58:42,927 ОШИБКА [org.jboss.as.server] (потоки запросов внешнего управления -- 1) WFLYSRV0021: развертывание развертывания "NOTiFYwell.ear "был выполнен откат со следующим сообщением об ошибке: {"WFLYCTL0080: Failed services" => {"jboss.persistenceunit.\"NOTiFYwell.ear/NOTiFYwellJAR.jar#NOTiFYwel lMongoDBPersistenceUnit\".FIRST_PHASE" => "java.util.ServiceConfigurationError: org.hibernate.integrator.spi.Integrator: Provider org.hibernate.ogm.service.impl.OgmIntegrator не найден Причина: java .util.ServiceConfigurationError: org.hibernate.integrator.spi.Integrator: поставщик org.hibernate.ogm.service.impl.OgmIntegrator не найден"}} 17:58:42,939 INFO [org.jboss.as.server.deployment] ( Поток службы MSC 1-7) WFLYSRV0208: остановлено подразвертывание (имя среды выполнения: NOTiFYwellJAR.jar) через 10 мс 17:58:42,942 INFO [org.jboss.as.server.deployment] (поток службы MSC 1-8) WFLYSRV0208: остановлено subdeployment (имя среды выполнения: NOTiFYwellWAR.war) через 13 мс 17:58:42,952 INFO [org.jboss.as.server.deployment] (поток службы MSC 1–8) WFLYSRV0028: остановлено развертывание NOTiFYwell.ear (имя среды выполнения: NOTiFYwell .ear) за 25 мс

Ошибка:

Поставщик org.hibernate.ogm.service.impl.OgmIntegrator не найден

Относится к классу OgmIntegrator, найденному в:

Любые идеи, почему это не загружается? ТИА

org/hibernate/ogm/service/impl/OgmIntegrator.class under /usr/local/Cellar/wildfly-as/11.0.0.Final/libexec/modules/system/layers/base/org/hibernate/ogm/5.3/hibernate-ogm-core-5.3.0.Final.jar

Я думаю, что понял проблему, вам нужно использовать это:


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


Ответы (2)


Это исключение

<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="org.hibernate.ogm" slot="5.3" services="export" />
            <module name="org.hibernate.ogm.mongodb" slot="5.3" services="export" />
        </dependencies>
    </deployment>
</jboss-deployment-structure>

означает, что вы используете org.hibernate:5.3 вместо org.hibernate.ogm:5.3

org.jboss.modules.ModuleNotFoundException: org.hibernate:5.3

Ошибка может быть в дескрипторе jboss-deployment или в файле MANIFEST.MF. Просто убедитесь, что вы используете только один или другой.

ОБНОВЛЕНИЕ: в сеансе часто задаваемых вопросов на веб-сайте Hibernate произошла ошибка, я обновил его. Спасибо за ответ.

Наконец-то развернули EAR.

person Davide    schedule 05.03.2018

Он развертывает EAR только в том случае, если я включаю MANIFEST.MF в EAR META-INF:

и удалить файл jboss-deployment-structure.xml.

Manifest-Version: 1.0
Dependencies: org.hibernate.ogm:5.3 services, org.hibernate.ogm.mongodb:5.3 services

Если я попытаюсь использовать jboss-deployment-structure.xml (пустой МАНИФЕСТ):

Его не удается развернуть с ошибкой, которая у меня была раньше:

<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="org.hibernate.ogm" slot="5.3" services="export" />
            <module name="org.hibernate.ogm.mongodb" slot="5.3" services="export" />
        </dependencies>
    </deployment>
</jboss-deployment-structure>

17:31:53,908 ОШИБКА [org.jboss.as.controller.management-operation] (потоки запроса внешнего управления — 3) WFLYCTL0013: операция («добавить») не удалась — адрес: ([(«развертывание» => «NOTiFYwell .ear")]) - описание ошибки: {"WFLYCTL0080: Failed services" => {"jboss.persistenceunit.\"NOTiFYwell.ear/NOTiFYwellJAR.jar#NOTiFYwellMongoDBPersistenceUnit\".FIRST_PHASE" => «java.util.ServiceConfigurationError: org.hibernate.integrator.spi.Integrator: поставщик org.hibernate.ogm.service.impl.OgmIntegrator не найден. Причина: java.util.ServiceConfigurationError: org.hibernate.integrator.spi.Integrator: Поставщик org.hibernate.ogm.service.impl.OgmIntegrator не найден"}} 17:31:53,909 ОШИБКА [org.jboss.as.server] (потоки запросов внешнего управления -- 3) WFLYSRV0021: развертывание развертывания "NOTiFYwell.ear "был выполнен откат со следующим сообщением об ошибке: {"WFLYCTL0080: Failed services" => {"jboss.persistenceunit.\"NOTiFYwell.ear/NOTiFYwellJAR.jar#NOTiFYwel lMongoDBPersistenceUnit\".FIRST_PHASE" => "java.util.ServiceConfigurationError: org.hibernate.integrator.spi.Integrator: Provider org.hibernate.ogm.service.impl.OgmIntegrator не найден Причина: java .util.ServiceConfigurationError: org.hibernate.integrator.spi.Integrator: поставщик org.hibernate.ogm.service.impl.OgmIntegrator не найден"}}

Сопоставил сущность с моей таблицей MongoDB и смог вернуть «список» сущностей.

Пришлось убедиться, что тип идентификатора коллекции был сопоставлен как:

@Id @Type(type = "objectid") частный идентификатор строки;

17:58:42,921 ОШИБКА [org.jboss.msc.service.fail] (пул потоков ServerService – 65) MSC000001: не удалось запустить службу jboss.persistenceunit."NOTiFYwell.ear/NOTiFYwellJAR.jar#NOTiFYwellMongoDBPersistenceUnit". FIRST_PHASE: org.jboss.msc.service.StartException в службе jboss.persistenceunit."NOTiFYwell.ear/NOTiFYwellJAR.jar#NOTiFYwellMongoDBPersistenceUnit".FIRST_PHASE: java.util.ServiceConfigurationError: org. hibernate.integrator.spi.Integrator: Поставщик org.hibernate.ogm.service.impl.OgmIntegrator не найден в org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1$1.run(PhaseOnePersistenceUnitServiceImpl.java:128) в org.jboss. as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1$1.run(PhaseOnePersistenceUnitServiceImpl.java:104) в org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:640) в org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1 .run(PhaseOnePersisten ceUnitServiceImpl.java:137) в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) в java.lang.Thread.run (Thread.java:745) в org.jboss.threads.JBossThread.run(JBossThread.java:320) Вызвано: java.util.ServiceConfigurationError: org.hibernate.integrator.spi.Integrator: Provider org.hibernate.ogm. service.impl.OgmIntegrator не найден в java.util.ServiceLoader.fail(ServiceLoader.java:239) в java.util.ServiceLoader.access$300(ServiceLoader.java:185) в java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader .java:372) в java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404) в java.util.ServiceLoader$1.next(ServiceLoader.java:480) в org.hibernate.boot.registry.classloading.internal .ClassLoaderServiceImpl.loadJavaServices(ClassLoaderServiceImpl.java:459) в org.hibernate.integrator.internal.IntegratorS erviceImpl.(IntegratorServiceImpl.java:40) в org.hibernate.boot.registry.BootstrapServiceRegistryBuilder.build(BootstrapServiceRegistryBuilder.java:224) в org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.buildBootstrapServiceRegistry(EntityManagerFactoryBuilderImpl.java:406) org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:196) в org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl. (EntityManagerFactoryBuilderImpl.java:164) в org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:32) в org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:89) в org.jboss.as.jpa.hibernate5.TwoPhaseBootstrapImpl.(TwoPhaseBootstrapImpl.java:39) в org.jboss.as.jpa.hibernate5.HibernatePersistenceProviderAdaptor.getBootstrap(HibernatePersistenceProviderAdaptor.java:199) в org.wildfly.jpa.hibernateProviderAMPMPers5.HibernatePersistenceProviderAdaptor.getBootstrap(HibernatePersistenceProviderAdaptor.java:199) .getBootstrap(HibernateOGMPersistenceProviderAdaptor.java:87) в org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl.createContainerEntityManagerFactoryBuilder(PhaseOnePersistenceUnitServiceImpl.java:254) в org.jboss.as.jpa.service.PhaseOnePersistenceUnitplServiceImpl:00.access 59) в org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1$1.run(PhaseOnePersistenceUnitServiceImpl.java:125) ... еще 7

17:31:53,892 ОШИБКА [org.jboss.msc.service.fail] (пул потоков ServerService — 30) MSC000001: не удалось запустить службу jboss.persistenceunit."NOTiFYwell.ear/NOTiFYwellJAR.jar#NOTiFYwellMongoDBPersistenceUnit". FIRST_PHASE: org.jboss.msc.service.StartException в службе jboss.persistenceunit."NOTiFYwell.ear/NOTiFYwellJAR.jar#NOTiFYwellMongoDBPersistenceUnit".FIRST_PHASE: java.util.ServiceConfigurationError: org. hibernate.integrator.spi.Integrator: Поставщик org.hibernate.ogm.service.impl.OgmIntegrator не найден в org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1$1.run(PhaseOnePersistenceUnitServiceImpl.java:128) в org.jboss. as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1$1.run(PhaseOnePersistenceUnitServiceImpl.java:104) в org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:640) в org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1 .run(PhaseOnePersisten ceUnitServiceImpl.java:137) в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) в java.lang.Thread.run (Thread.java:745) в org.jboss.threads.JBossThread.run(JBossThread.java:320) Вызвано: java.util.ServiceConfigurationError: org.hibernate.integrator.spi.Integrator: Provider org.hibernate.ogm. service.impl.OgmIntegrator не найден в java.util.ServiceLoader.fail(ServiceLoader.java:239) в java.util.ServiceLoader.access$300(ServiceLoader.java:185) в java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader .java:372) в java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404) в java.util.ServiceLoader$1.next(ServiceLoader.java:480) в org.hibernate.boot.registry.classloading.internal .ClassLoaderServiceImpl.loadJavaServices(ClassLoaderServiceImpl.java:459) в org.hibernate.integrator.internal.IntegratorS erviceImpl.(IntegratorServiceImpl.java:40) в org.hibernate.boot.registry.BootstrapServiceRegistryBuilder.build(BootstrapServiceRegistryBuilder.java:224) в org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.buildBootstrapServiceRegistry(EntityManagerFactoryBuilderImpl.java:406) org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:196) в org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl. (EntityManagerFactoryBuilderImpl.java:164) в org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:32) в org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:89) в org.jboss.as.jpa.hibernate5.TwoPhaseBootstrapImpl.(TwoPhaseBootstrapImpl.java:39) в org.jboss.as.jpa.hibernate5.HibernatePersistenceProviderAdaptor.getBootstrap(HibernatePersistenceProviderAdaptor.java:199) в org.wildfly.jpa.hibernateProviderAMPMPers5.HibernatePersistenceProviderAdaptor.getBootstrap(HibernatePersistenceProviderAdaptor.java:199) .getBootstrap(HibernateOGMPersistenceProviderAdaptor.java:87) в org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl.createContainerEntityManagerFactoryBuilder(PhaseOnePersistenceUnitServiceImpl.java:254) в org.jboss.as.jpa.service.PhaseOnePersistenceUnitplServiceImpl:00.access 59) в org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1$1.run(PhaseOnePersistenceUnitServiceImpl.java:125) ... еще 7

person NOTiFY    schedule 05.03.2018