【问题标题】:How to reactivate infinispan on Wildfly 11, when using hibernate-orm-modules to use a more current Hibernate?使用 hibernate-orm-modules 使用更新的 Hibernate 时,如何在 Wildfly 11 上重新激活 infinispan?
【发布时间】:2018-08-29 21:08:18
【问题描述】:

followed this jboss guide 将更新的休眠版本并行安装到 WF11 中。鉴于最后几句话:

使用这些模块时,您将放弃应用服务器通常会自动执行的一些集成。

例如,在使用默认 Hibernate ORM 模块时启用 Infinispan 二级缓存非常简单,因为 WildFly 会自动设置对 Infinispan 和集群组件的依赖关系。当使用这些自定义模块时,这种集成将不再自动工作:您仍然可以启用所有通常可用的功能,但这些需要显式配置,就像您在不同的容器中运行 Hibernate,或者在没有容器中运行一样。

我调整了 jboss-deployment-structure 以明确要求 infinispan as

<jboss-deployment-structure>
    <ear-subdeployments-isolated>false</ear-subdeployments-isolated>
        <!-- This corresponds to the top level deployment. For a war this is the war's module, for an ear -->
        <!-- This is the top level ear module, which contains all the classes in the EAR's lib folder     -->
        <deployment>
            <dependencies>
                <module name="org.hibernate.infinispan" services="import" slot="${version.org.hibernate}"/>
            </dependencies>
        </deployment>
        <sub-deployment name="some-report-service-${project.version}.war">
            <exclusions>
                <module name="org.jboss.resteasy.resteasy-jackson2-provider"/>
                <module name="org.jboss.resteasy.resteasy-jettison-provider"/>
            </exclusions>
            <dependencies>
                <module name="org.jboss.resteasy.resteasy-jackson-provider" services="import"/>
                <module name="org.hibernate.infinispan" services="import" slot="${version.org.hibernate}"/>
            </dependencies>
        </sub-deployment>
[...]

很遗憾,我仍然无法使用此 Stacktrace 将 EAR 文件部署到我的 Wildfly

 Unable to build Hibernate SessionFactory
        at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:195)
        at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:125)
        at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:640)
        at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:209)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:748)
        at org.jboss.threads.JBossThread.run(JBossThread.java:320)
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: DM_DERIVATEV] Unable to build Hibernate SessionFactory
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:970)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:895)
        at org.jboss.as.jpa.hibernate5.TwoPhaseBootstrapImpl.build(TwoPhaseBootstrapImpl.java:44)
        at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:167)
        ... 7 more
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.spi.CacheImplementor]
        at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:271)
        at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233)
        at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
        at org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.getService(SessionFactoryServiceRegistryImpl.java:80)
        at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:243)
        at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:462)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:892)
        ... 9 more
Caused by: org.hibernate.cache.CacheException: HHH025011: Infinispan custom cache command factory not installed (possibly because the classloader where Infinispan lives couldn't find the Hibernate Infinispan cache provider)
        at org.hibernate.cache.infinispan.InfinispanRegionFactory.getCacheCommandFactory(InfinispanRegionFactory.java:743)
        at org.hibernate.cache.infinispan.InfinispanRegionFactory.startRegion(InfinispanRegionFactory.java:600)
        at org.hibernate.cache.infinispan.InfinispanRegionFactory.buildTimestampsRegion(InfinispanRegionFactory.java:390)
        at org.hibernate.internal.CacheImpl.<init>(CacheImpl.java:78)
        at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:28)
        at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:20)
        at org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.initiateService(SessionFactoryServiceRegistryImpl.java:59)
        at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259)
        ... 15 more

我错过了什么?希望您能帮助我并致以最诚挚的问候,

马吕斯

【问题讨论】:

    标签: hibernate configuration infinispan wildfly-11


    【解决方案1】:

    好的,我找到了丢失的链接。还必须调整standalone/configuration/standalone.xml 文件。

    搜索:&lt;cache-container name="hibernate" module="org.hibernate.infinispan:4"&gt; 替换:&lt;cache-container name="hibernate" module="org.hibernate.infinispan:5.2"&gt;

    5.2当然是你指的版本,根据你的需要进行调整。

    更多详情:

    最好的问候,

    马吕斯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-04
      • 2021-12-17
      • 1970-01-01
      • 2018-05-03
      • 1970-01-01
      • 2018-05-13
      • 2011-05-21
      • 2017-07-26
      相关资源
      最近更新 更多