我正在尝试将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?
答案 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>