尝试使用JBoss WildFly 11,Hibernate 5.3,OGM 5和MongoDB - EAR不会部署

时间:2018-03-01 13:34:30

标签: hibernate hibernate-ogm jboss-wildfly-11

我正在尝试将JPA OGM与MongoDB一起使用。

我已将最新版本的Hibernate(5.3.0.CR1)添加到WildFly 11模块文件夹中:

  

/usr/local/Cellar/wildfly-as/11.0.0.Final/libexec/modules/system/layers/base/org/hibernate/5.3.0.CR1

我已将Hibernate版本添加到我的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.3.0.CR1"/>
            <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossAS"/>
            <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>

当我构建EAR并且必须不断添加来自Hibernate和OGM的各种JAR来摆脱“未找到的类别”#。

我现在坚持:

  

错误[org.jboss.msc.service.fail](ServerService线程池 - 65)   MSC000001:无法启动服务   jboss.persistenceunit&#34; NOTiFYwell.ear / NOTiFYwellJAR.jar#NOTiFYwellMongoDBPersistenceUnit&#34 ;:   服务中的org.jboss.msc.service.StartException   jboss.persistenceunit&#34; NOTiFYwell.ear / NOTiFYwellJAR.jar#NOTiFYwellMongoDBPersistenceUnit&#34 ;:   java.util.ServiceConfigurationError:   org.hibernate.boot.model.TypeContributor:Provider   org.hibernate.type.Java8DateTimeTypeContributor不是子类型

为什么不从模块文件夹中拾取所需的JAR,并由&#39;类加载器自动加载&#39;而不是必须手动将它们添加到EAR?

2 个答案:

答案 0 :(得分:1)

首先,Hibernate OGM 5.3与ORM 5.2兼容,而不是ORM 5.3(ORM 5.3尚未发布)。

请参阅我们的兼容性矩阵:http://hibernate.org/ogm/releases/

然后我们有一个完整的文档部分解释如何在WildFly上使用OGM。见https://docs.jboss.org/hibernate/stable/ogm/reference/en-US/html_single/#ogm-configuration-jbossmodule。请注意,文档中存在错误,它针对的是WildFly 11,而不是10.我们将在下一版本中修复此问题。

WildFly是一个模块化的环境,因此无法在任何地方使用类。这就是为什么我们要仔细设置您可以重复使用的模块。

更新:我创建了https://hibernate.atlassian.net/browse/OGM-1414来跟踪文档问题。

答案 1 :(得分:0)

请解压缩this并将其放入$ {wildflyHome} / modules中。

然后在您的pom.xml中添加以下标记:

<dependency>
    <groupId>org.hibernate.ogm</groupId>
    <artifactId>hibernate-ogm-mongodb</artifactId>
    <version>5.1.0.Final</version>
    <scope>provided</scope>
</dependency>