Hi,

I'm trying out DeltaSpike JPA, but my persistence.xml is not being picked up. I 
tried to place persistene.xml under META-INF and WEB-INF/classes/META-INF/.

TransactionalInterceptor is configured in beans.xml. 

Here are my files.

war-listing:

 --------    ----   ----    ----
   210031  03-06-14 18:35   WEB-INF/lib/deltaspike-core-api-0.6-SNAPSHOT.jar
   116683  03-06-14 18:35   WEB-INF/lib/hibernate-jpa-2.1-api-1.0.0.Final.jar
   714186  03-06-14 18:35   WEB-INF/lib/javassist-3.18.1-GA.jar
        0  03-06-14 18:35   WEB-INF/lib/
    40784  03-06-14 18:35   
WEB-INF/lib/deltaspike-jpa-module-impl-0.6-SNAPSHOT.jar
        0  03-06-14 18:35   WEB-INF/classes/com/parts/persistence/test/
    15648  03-06-14 18:35   
WEB-INF/lib/deltaspike-jpa-module-api-0.6-SNAPSHOT.jar
        0  03-06-14 18:35   WEB-INF/classes/com/parts/persistence/model/
        0  03-06-14 18:35   WEB-INF/classes/com/parts/persistence/
        0  03-06-14 18:35   WEB-INF/classes/
   121490  03-06-14 18:35   WEB-INF/lib/deltaspike-core-impl-0.6-SNAPSHOT.jar
   314186  03-06-14 18:35   WEB-INF/lib/dom4j-1.6.1.jar
        0  03-06-14 18:35   WEB-INF/classes/com/parts/
        0  03-06-14 18:35   
WEB-INF/classes/com/parts/persistence/test/repository/
    58109  03-06-14 18:35   WEB-INF/lib/jboss-logging-3.1.3.GA.jar
   109768  03-06-14 18:35   WEB-INF/lib/xml-apis-1.0.b2.jar
        0  03-06-14 18:35   WEB-INF/
      437  03-06-14 18:35   META-INF/beans.xml
      912  03-06-14 18:35   
WEB-INF/classes/com/parts/persistence/model/TestEntity.class
  1644906  03-06-14 18:35   WEB-INF/lib/h2-1.3.175.jar
     4022  03-06-14 18:35   
WEB-INF/classes/com/parts/persistence/test/repository/PartsRepositoryTest.class
      527  03-06-14 18:35   
WEB-INF/classes/com/parts/persistence/producer/PartsRepository.class
        0  03-06-14 18:35   WEB-INF/classes/com/parts/persistence/producer/
     1113  03-06-14 18:35   META-INF/persistence.xml
        0  03-06-14 18:35   WEB-INF/classes/com/
    76575  03-06-14 18:35   
WEB-INF/lib/hibernate-commons-annotations-4.0.4.Final.jar
    28291  03-06-14 18:35   
WEB-INF/lib/jboss-transaction-api_1.2_spec-1.0.0.Final.jar
    12022  03-06-14 18:35   
WEB-INF/lib/jboss-logging-annotations-1.2.0.Beta1.jar
   445514  03-06-14 18:35   WEB-INF/lib/antlr-2.7.7.jar
    77445  03-06-14 18:35   WEB-INF/lib/jandex-1.1.0.Final.jar
        0  03-06-14 18:35   META-INF/
     1306  03-06-14 18:35   
WEB-INF/classes/com/parts/persistence/producer/PartsRepositoryProducer.class
  5282694  03-06-14 18:35   WEB-INF/lib/hibernate-core-4.3.4.Final.jar


Persistence.xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence 
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd";>
  <persistence-unit name="partsunit" transaction-type="JTA">
    <shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>
    <non-jta-data-source>partsds</non-jta-data-source>
    <properties>
      <property name="hibernate.connection.url" 
value="jdbc:hsqldb:mem:partsdb;shutdown=false"/>
      <property name="hibernate.connection.username" value="sa"/>
      <property name="hibernate.connection.password" value=""/>
      <property name="hibernate.dialect" 
value="org.hibernate.dialect.H2Dialect"/>
      <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
      <property name="hibernate.show_sql" value="true"/>
      <property name="hibernate.format_sql" value="true"/>
      <property name="hibernate.jdbc.use_scrollable_resultset" value="true"/>
    </properties>
  </persistence-unit>
</persistence>

EntityProducer:

@ApplicationScoped
public class PartsRepositoryProducer {

    //or manual bootstrapping
    @PersistenceUnit
    private EntityManagerFactory entityManagerFactory;

    @Produces
    @PartsRepository
    @RequestScoped
    protected EntityManager createEntityManager() {
        return this.entityManagerFactory.createEntityManager();
    }

    protected void closeEntityManager(@Disposes @PartsRepository EntityManager 
entityManager) {
        if (entityManager.isOpen()) {
            entityManager.close();
        }
    }
}

Test case:

    @Inject
    @PartsRepository
    private EntityManager em;

    @Test
    public void testEm() throws Exception {
        assertNotNull(em);
        TestEntity m = new TestEntity();
        m.setId("1");
        m.setName("foo");
        em.getTransaction().begin();
        em.persist(m);
        em.flush();
        em.getTransaction().commit();
    }

The assertNotNull passes but the Exception occurs on em.getTransaction().

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.139 sec <<< 
FAILURE! - in com.parts.persistence.test.repository.PartsRepositoryTest
testMe(com.parts.persistence.test.repository.PartsRepositoryTest)  Time 
elapsed: 0.072 sec  <<< ERROR!
java.lang.NullPointerException: null
        at 
org.jboss.weld.injection.AbstractResourceInjection.getResourceReference(AbstractResourceInjection.java:44)
        at 
org.jboss.weld.injection.AbstractResourceInjection.injectResourceReference(AbstractResourceInjection.java:53)
        at org.jboss.weld.util.Beans.injectEEFields(Beans.java:331)
        at 
org.jboss.weld.injection.producer.ResourceInjector.inject(ResourceInjector.java:59)
        at 
org.jboss.weld.injection.producer.DefaultInjector$1.proceed(DefaultInjector.java:66)
        at 
org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:48)
        at 
org.jboss.weld.injection.producer.DefaultInjector.inject(DefaultInjector.java:64)
        at 
org.jboss.weld.injection.producer.BasicInjectionTarget.inject(BasicInjectionTarget.java:90)
        at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:150)
        at org.jboss.weld.context.AbstractContext.get(AbstractContext.java:96)
        at 
org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:733)
        at 
org.jboss.weld.injection.producer.AbstractMemberProducer.getReceiver(AbstractMemberProducer.java:128)
        at 
org.jboss.weld.injection.producer.AbstractMemberProducer.produce(AbstractMemberProducer.java:148)
        at 
org.jboss.weld.bean.AbstractProducerBean.create(AbstractProducerBean.java:183)
        at org.jboss.weld.context.AbstractContext.get(AbstractContext.java:96)
        at 
org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:98)
        at 
org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:99)
        at 
org.jboss.weld.proxies.EntityManager$893098197$Proxy$_$$_WeldClientProxy.getTransaction(Unknown
 Source)
        at 
com.parts.persistence.test.repository.PartsRepositoryTest.testMe(PartsRepositoryTest.java:57)

Any ideas on what may be wrong?

Cheers,
Ove

Reply via email to