[jboss-user] [JBoss Seam] - Entity EJB3.0 Unit Testing - How to setup JNDI datasource?
sushmu
do-not-reply at jboss.com
Fri Dec 21 02:30:15 EST 2007
I'm using maven and not seam-gen. I have a simple entity User and a unit test.
I'm referring Seam 2.0 examples in the test creation.
Here's the snippets:
UserTest:
public class UserTest
| extends SeamTest
| {
| EntityManager em() {
| EntityManagerFactory emf = Persistence.createEntityManagerFactory("intellidocs");
| EntityManager em = emf.createEntityManager();
| assertNotNull("entity manager", em);
| assertTrue("entity manager open", em.isOpen());
| return em;
| }
persistence.xml
<persistence-unit name="intellidocs">
| <jta-data-source>java:/intellidocsDS</jta-data-source>
|
pgsql-ds.xml
<datasources>
| <local-tx-datasource>
|
| <!-- The jndi name of the DataSource, it is prefixed with java:/ -->
| <!-- Datasources are not available outside the virtual machine -->
| <jndi-name>intellidocsDS</jndi-name>
|
| <connection-url>jdbc:postgresql://localhost:5432/test</connection-url>
|
| <!-- The driver class -->
| <driver-class>org.postgresql.Driver</driver-class>
|
|
All of them are present in test/resources.
I run mvn:test
and here's the error:
-------------------------------------------------------
| T E S T S
| -------------------------------------------------------
| Running com.ibt.intellidocs.dummy.UserTest
| 12:20:55,752 INFO Version:15 - Hibernate EntityManager 3.2.1.GA
| 12:20:55,777 INFO Version:15 - Hibernate Annotations 3.2.1.GA
| 12:20:55,794 INFO Environment:509 - Hibernate 3.2.3
| 12:20:55,802 INFO Environment:542 - hibernate.properties not found
| 12:20:55,807 INFO Environment:676 - Bytecode provider name : cglib
| 12:20:55,815 INFO Environment:593 - using JDK 1.4 java.sql.Timestamp handling
| 12:20:56,697 INFO AnnotationBinder:388 - Binding entity from annotated class: com.ibt.intellidocs.dummy.User
| 12:20:56,757 INFO EntityBinder:378 - Bind entity com.ibt.intellidocs.dummy.User on table DUMMYUSER
| 12:20:56,960 INFO NamingHelper:26 - JNDI InitialContext properties:{}
| 12:20:56,966 INFO MemoryContextFactory:34 - Creating EJB3Unit initial JNDI context
| 12:20:56,972 FATAL DatasourceConnectionProvider:55 - Could not find datasource: java:/intellidocsDS
| javax.naming.NamingException: Can't find the name (intellidocsDS) in the JNDI tree Current bindings>({})
| at com.bm.jndi.MemoryContext.lookup(MemoryContext.java:38)
| at javax.naming.InitialContext.lookup(InitialContext.java:392)
| at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:52)
| at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)
| at org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:29)
| at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)
| at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
| at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
| at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:713)
| at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:121)
| at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
| at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:60)
| at com.ibt.intellidocs.dummy.UserTest.em(UserTest.java:21)
| at com.ibt.intellidocs.dummy.UserTest.testRequiredAttributes(UserTest.java:50)
| at com.ibt.intellidocs.dummy.UserTest$1.testComponents(UserTest.java:37)
| at org.jboss.seam.mock.BaseSeamTest$ComponentTest.run(BaseSeamTest.java:167)
| at com.ibt.intellidocs.dummy.UserTest.runTests(UserTest.java:32)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:597)
| at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:552)
| at org.testng.internal.Invoker.invokeMethod(Invoker.java:407)
| at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:778)
| at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:105)
| at org.testng.TestRunner.privateRun(TestRunner.java:682)
| at org.testng.TestRunner.run(TestRunner.java:566)
| at org.testng.SuiteRunner.privateRun(SuiteRunner.java:220)
| at org.testng.SuiteRunner.run(SuiteRunner.java:146)
| at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:713)
| at org.testng.TestNG.runSuitesLocally(TestNG.java:676)
| at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeTestNG(TestNGDirectoryTestSuite.java:195)
| at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:133)
| at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:597)
| at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:308)
| at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:879)
| 12:20:57,040 INFO AnnotationBinder:388 - Binding entity from annotated class: com.ibt.intellidocs.dummy.User
| 12:20:57,041 INFO EntityBinder:378 - Bind entity com.ibt.intellidocs.dummy.User on table DUMMYUSER
| 12:20:57,060 INFO NamingHelper:26 - JNDI InitialContext properties:{}
| 12:20:57,062 FATAL DatasourceConnectionProvider:55 - Could not find datasource: java:/intellidocsDS
|
Now the question.. How do I make the datasource available to SeamTest through JNDI?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4114892#4114892
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4114892
More information about the jboss-user
mailing list