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>