3

I am trying to get hibernate-ogm with the monogodb provider working on jboss eap 6.2.

I have configured my persistence.xml

<?xml version="1.0"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
             version="2.0">

    <persistence-unit name="monitor" transaction-type="JTA">
        <provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>
        <!--<jta-data-source>java:/jdbc/monitorservice/monitorDs</jta-data-source>-->
        <!--<jta-data-source>java:/DefaultDS</jta-data-source>-->
        <properties>
            <property name="hibernate.transaction.jta.platform"
                      value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" />

            <property name="hibernate.ogm.datastore.provider" value="mongodb" />
            <property name="hibernate.ogm.datastore.database" value="db"/>
            <property name="hibernate.ogm.datastore.host" value="server"/>
            <property name="hibernate.ogm.datastore.port" value="port"/>
            <property name="hibernate.ogm.datastore.username" value="user"/>
            <property name="hibernate.ogm.datastore.password" value="pass"/>

        </properties>
    </persistence-unit>
</persistence>

This is my class which uses the entity manager:

@Stateless
public class ProcessDao {

    @PersistenceUnit(name = "monitor")
    private EntityManager entityManager;
...
}

But when the code is executed, I get the following exception:

Caused by: java.lang.IllegalArgumentException: Can not set javax.persistence.EntityManager field com.example.ProcessDao.entityManager to org.hibernate.ogm.hibernatecore.impl.OgmSessionFactoryImpl
        at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:164) [rt.jar:1.7.0_71]
        at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:168) [rt.jar:1.7.0_71]
        at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81) [rt.jar:1.7.0_71]
        at java.lang.reflect.Field.set(Field.java:741) [rt.jar:1.7.0_71]
        at org.jboss.as.ee.component.ManagedReferenceFieldInjectionInterceptorFactory$ManagedReferenceFieldInjectionInterceptor.processInvocation(ManagedReferenceFieldInjectionInterceptorFactory.java:114) [jboss-as-ee-7.3.2.Final-redhat-2.jar:7.3.2.Final-redhat-2]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.as.ee.component.ManagedReferenceInterceptorFactory$ManagedReferenceInterceptor.processInvocation(ManagedReferenceInterceptorFactory.java:95) [jboss-as-ee-7.3.2.Final-redhat-2.jar:7.3.2.Final-redhat-2]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) [jboss-as-ee-7.3.2.Final-redhat-2.jar:7.3.2.Final-redhat-2]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:272) [jboss-as-ejb3-7.3.2.Final-redhat-2.jar:7.3.2.Final-redhat-2]
        ... 165 more

Any idea what I can do to get this working?

cremersstijn
  • 2,375
  • 4
  • 28
  • 41
  • I have asked the same question on the hibernate ogm forum: https://forum.hibernate.org/viewtopic.php?f=31&t=1037708&start=0 – cremersstijn Jan 07 '15 at 09:19

1 Answers1

3

Hibernate OGM requires updated versions of some libraries coming with JBoss EAP (e.g. it uses functionality only coming with the latest versions of Hibernate ORM).

There used to be an experimental ZIP file which you would unzip ontop of your installation to add Hibernate OGM and all the required modules. Unfortunately this ZIP file has not been updated recently and thus is not part of the Hibernate OGM 4.1.0.Final distribution. We plan to update the ZIP file but we're not there yet.

So for the time being, you might use Hibernate OGM on Wildfly 8. Or, if you feel adventureous, you might build the module ZIP from source and investigate the required changes (should a pull request result from this, we'd be very happy to integrate it).

Gunnar
  • 18,095
  • 1
  • 53
  • 73