EntityManager trouble
erikslagter Jan 10, 2008 9:50 AMI'm in some trouble with testing my DAO in Eclipse. I'm using TestNG and Eclipse europe together with Seam 2.0.0GA.
I have to got the following test funtion:
@Test public void test(){ dao = new PaymentDeviceDAO(); String terminalProvider = "Malle Japie"; String terminalId = "12345"; device = dao.findById(terminalProvider, terminalId); assert device != null; } private EntityManagerFactory emf; @Out EntityManager em; protected String datasourceJndiName; public EntityManagerFactory getEntityManagerFactory(){ assert emf != null; return emf; } @BeforeClass @Parameters("datasourceJndiName") public void setDatasourceJndiName(String datasourceJndiName) { this.datasourceJndiName = datasourceJndiName; init(); } public void init(){ emf = Persistence.createEntityManagerFactory(datasourceJndiName); em = emf.createEntityManager(); assert emf != null; } @AfterClass public void destroy(){ emf.close(); assert emf.isOpen() == false; }
What is tries to do is find a PaymentDevice using the two arguments. Nothing special...
datasourceJndiName is defined in the testng.xml filed as "testDb".
When I run this test I get the following Exception:
javax.persistence.PersistenceException: No Persistence provider for EntityManager named testDb
I tried to figure it out myself, by following the dvd example of seam and various forums.
I can't find out anymore where it goes all wrong!?
Can anybody help me?
My configs are defined as following:
persistence.xml
<persistence-unit name="testDb"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:/testDataSource</jta-data-source> <properties> <property name="hibernate.hbm2ddl.auto" value="create-drop"/> <property name="hibernate.cache.use_query_cache" value="true"/> <property name="hibernate.show_sql" value="false"/> <property name="jboss.entity.manager.factory.jndi.name" value="java:/testEntityManagerFactory" /> </properties> </persistence-unit>
components.xml
<persistence:managed-persistence-context name="entityManager" auto-create="true" persistence-unit-jndi-name="java:/testEntityManagerFactory" />
mps-ds.xml
<local-tx-datasource> <jndi-name>testDataSource</jndi-name> <connection-url>jdbc:postgresql://localhost:5432/mps</connection-url> <driver-class>org.postgresql.Driver</driver-class> <user-name>postgres</user-name> <password>secretPassword:)</password> <!-- <exception-sorter-class-name> org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter </exception-sorter-class-name> <metadata> <type-mapping>mySQL</type-mapping> </metadata> --> </local-tx-datasource>
hibernate.cfg.xml
<hibernate-configuration> <session-factory> <property name="show_sql">false</property> <property name="connection.datasource">java:/testDataSource</property> <property name="transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property> <property name="transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property> <property name="cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property> <property name="hbm2ddl.auto">create-drop</property> </session-factory> </hibernate-configuration>