0

MongoDB で JPA を使用できるように、Hibernate ORM 5.2 を OGM 5.3 で動作させるためにゆっくりと進行中です。

OGM FAQ で参照されている JNDI ルックアップ エラーを削除するには、次の手順を実行します。

WildFly の上で Hibernate OGM を使用すると、JndiException が発生します。どうしたの?「Unable to lookup JNDI name [---PlaceHolderDSForOGM---]」という JndiException が表示されている場合、アプリケーションは 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>

WildFly 11 コンソールから EAR をデプロイしようとすると、次のようになります。

17:58:42,921 エラー [org.jboss.msc.service.fail] (ServerService スレッド プール -- 65) MSC000001: サービス jboss.persistenceunit の開始に失敗しました。"NOTiFYwell.ear/NOTiFYwellJAR.jar#NOTiFYwellMongoDBPersistenceUnit". FIRST_PHASE : サービス jboss.persistenceunit の org.jboss.msc.service.StartException."NOTiFYwell.ear/NOTiFYwellJAR.jar#NOTiFYwellMongoDBPersistenceUnit". 第1段階: 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) .as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1.run(PhaseOnePersistenceUnitServiceImpl.java:137) で java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) で java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor. java:617) org.jboss の java.lang.Thread.run(Thread.java:745) で。threads.JBossThread.run(JBossThread.java:320) 原因: java.util.ServiceConfigurationError: org.hibernate.integrator.spi.Integrator: プロバイダー 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.boot.registry.BootstrapServiceRegistryBuilder の org.hibernate.integrator.internal.IntegratorServiceImpl.(IntegratorServiceImpl.java:40)。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) 組織で。wildfly.jpa.hibernateogm5.HibernateOGMPersistenceProviderAdaptor.getBootstrap(HibernateOGMPersistenceProviderAdaptor.java:87) at org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl.createContainerEntityManagerFactoryBuilder(PhaseOnePersistenceUnitServiceImpl.java:254) at org.jboss.as.jpaServiceImplistenceUnitsImplistencePerase.service. access$900(PhaseOnePersistenceUnitServiceImpl.java:59) at org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1$1.run(PhaseOnePersistenceUnitServiceImpl.java:125) ... 7 詳細PhaseOnePersistenceUnitServiceImpl.access$900(PhaseOnePersistenceUnitServiceImpl.java:59) at org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1$1.run(PhaseOnePersistenceUnitServiceImpl.java:125) ... 7 詳細PhaseOnePersistenceUnitServiceImpl.access$900(PhaseOnePersistenceUnitServiceImpl.java:59) at org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1$1.run(PhaseOnePersistenceUnitServiceImpl.java:125) ... 7 詳細

17:58:42,926 ERROR [org.jboss.as.controller.management-operation] (External Management Request Threads -- 1) WFLYCTL0013: 操作 ("add") が失敗しました - アドレス: ([("deployment" => "NOTiFYwell .ear")]) - 失敗の説明: {"WFLYCTL0080: 失敗したサービス" => {"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#NOTiFYwellMongoDBPersistenceUnit\". 第1段階" => "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,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: 13 ミリ秒でサブデプロイメント (ランタイム名: NOTiFYwellWAR.war) を停止しました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

これがロードされていない理由はありますか?ティア

4

2 に答える 2