[jboss-user] [JBoss Seam] - Problem testing seam using EntityManager

c_eric_ray do-not-reply at jboss.com
Fri Jul 28 13:50:28 EDT 2006


I've have test like so...

  | package com.vicor.dcap.integration.test;
  | 
  | import javax.persistence.EntityManagerFactory;
  | import javax.persistence.Persistence;
  | 
  | import org.junit.AfterClass;
  | import org.junit.Assert;
  | import org.junit.BeforeClass;
  | import org.junit.Test;
  | 
  | 
  | public class PackageActionTest {
  |   
  |   private static EntityManagerFactory emf;
  |   
  |   @BeforeClass
  |   public static void init() {
  |     try {
  |         emf = Persistence.createEntityManagerFactory("DC");
  |       }
  |       catch(Exception e) {
  |         e.printStackTrace(System.err);
  |         Assert.fail(e.getMessage());
  |       }
  |   }
  |   
  |   @AfterClass
  |   public static void destroy()
  |   {
  |     try {
  |       //emf.close();
  |     }
  |     catch(Exception e) {
  |       e.printStackTrace(System.err);
  |       Assert.fail(e.getMessage());
  |     }
  |   }
  |   
  |   @Test
  |   public void loadPackages() {
  |     Assert.fail("not implemented yet...");
  |   }
  | }
  | 

when I run it  I get the following exception stack


  | FATAL 28-07 12:40:35,250 (Log4JLogger.java:fatal:124)  -default.persistence.propertiesO-:-Ofalse
  | FATAL 28-07 12:40:35,250 (Log4JLogger.java:fatal:124)  -ejb3-interceptors-aop.xmlO-:-Ofalse
  | FATAL 28-07 12:40:35,250 (Log4JLogger.java:fatal:124)  -embedded-jboss-beans.xmlO-:-Ofalse
  | FATAL 28-07 12:40:35,250 (Log4JLogger.java:fatal:124)  -jboss-jms-beans.xmlO-:-Ofalse
  | FATAL 28-07 12:40:35,250 (Log4JLogger.java:fatal:124)  -jndi.propertiesO-:-Ofalse
  | FATAL 28-07 12:40:35,265 (Log4JLogger.java:fatal:124)  -log4j.xmlO-:-Ofalse
  | FATAL 28-07 12:40:35,265 (Log4JLogger.java:fatal:124)  -META-INF/ejb-jar.xmlO-:-Ofalse
  | FATAL 28-07 12:40:35,265 (Log4JLogger.java:fatal:124)  -META-INF/jboss-app.xmlO-:-Ofalse
  | FATAL 28-07 12:40:35,265 (Log4JLogger.java:fatal:124)  -META-INF/MANIFEST.MFO-:-Ofalse
  | FATAL 28-07 12:40:35,265 (Log4JLogger.java:fatal:124)  -META-INF/persistence.xmlO-:-Ofalse
  | ERROR 28-07 12:40:35,343 (Log4JLogger.java:error:119)  -Could not obtain initial context
  | javax.naming.NamingException: Local server is not initialized
  | 	at org.jnp.interfaces.LocalOnlyContextFactory.getInitialContext(LocalOnlyContextFactory.java:45)
  | 	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
  | 	at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
  | 	at javax.naming.InitialContext.init(InitialContext.java:223)
  | 	at javax.naming.InitialContext.<init>(InitialContext.java:175)
  | 	at org.hibernate.util.NamingHelper.getInitialContext(NamingHelper.java:28)
  | 	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:61)
  | 	at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1928)
  | 	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1211)
  | 	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:631)
  | 	at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:760)
  | 	at org.hibernate.ejb.Ejb3Configuration.createFactory(Ejb3Configuration.java:151)
  | 	at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:205)
  | 	at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:114)
  | 	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:37)
  | 	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:27)
  | 	at com.vicor.dcap.integration.test.PackageActionTest.init(PackageActionTest.java:19)
  | 	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:585)
  | 	at org.junit.internal.runners.BeforeAndAfterRunner.invokeMethod(BeforeAndAfterRunner.java:74)
  | 	at org.junit.internal.runners.BeforeAndAfterRunner.runBefores(BeforeAndAfterRunner.java:50)
  | 	at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:33)
  | 	at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
  | 	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
  | 	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
  | javax.persistence.PersistenceException: org.hibernate.HibernateException: Could not find datasource
  | FATAL 28-07 12:40:35,359 (Log4JLogger.java:fatal:129)  -Could not find datasource: java:/PostgresDCAP
  | javax.naming.NamingException: Local server is not initialized
  | 	at org.jnp.interfaces.LocalOnlyContextFactory.getInitialContext(LocalOnlyContextFactory.java:45)
  | 	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
  | 	at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
  | 	at javax.naming.InitialContext.init(InitialContext.java:223)
  | 	at javax.naming.InitialContext.<init>(InitialContext.java:175)
  | 	at org.hibernate.util.NamingHelper.getInitialContext(NamingHelper.java:28)
  | 	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:61)
  | 	at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1928)
  | 	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1211)
  | 	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:631)
  | 	at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:760)
  | 	at org.hibernate.ejb.Ejb3Configuration.createFactory(Ejb3Configuration.java:151)
  | 	at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:205)
  | 	at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:114)
  | 	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:37)
  | 	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:27)
  | 	at com.vicor.dcap.integration.test.PackageActionTest.init(PackageActionTest.java:19)
  | 	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:585)
  | 	at org.junit.internal.runners.BeforeAndAfterRunner.invokeMethod(BeforeAndAfterRunner.java:74)
  | 	at org.junit.internal.runners.BeforeAndAfterRunner.runBefores(BeforeAndAfterRunner.java:50)
  | 	at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:33)
  | 	at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
  | 	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
  | 	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
  | 	at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:217)
  | 	at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:114)
  | 	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:37)
  | 	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:27)
  | 	at com.vicor.dcap.integration.test.PackageActionTest.init(PackageActionTest.java:19)
  | 	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:585)
  | 	at org.junit.internal.runners.BeforeAndAfterRunner.invokeMethod(BeforeAndAfterRunner.java:74)
  | 	at org.junit.internal.runners.BeforeAndAfterRunner.runBefores(BeforeAndAfterRunner.java:50)
  | 	at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:33)
  | 	at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
  | 	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
  | 	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
  | Caused by: org.hibernate.HibernateException: Could not find datasource
  | 	at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:56)
  | 	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:61)
  | 	at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1928)
  | 	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1211)
  | 	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:631)
  | 	at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:760)
  | 	at org.hibernate.ejb.Ejb3Configuration.createFactory(Ejb3Configuration.java:151)
  | 	at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:205)
  | 	... 18 more
  | Caused by: javax.naming.NamingException: Local server is not initialized
  | 	at org.jnp.interfaces.LocalOnlyContextFactory.getInitialContext(LocalOnlyContextFactory.java:45)
  | 	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
  | 	at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
  | 	at javax.naming.InitialContext.init(InitialContext.java:223)
  | 	at javax.naming.InitialContext.<init>(InitialContext.java:175)
  | 	at org.hibernate.util.NamingHelper.getInitialContext(NamingHelper.java:28)
  | 	at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:52)
  | 	... 27 more
  | 

I'm using eclipes and have set my test project to be an ejb project. I have the following persistence.xml which defines the datasource I want to use.

  | <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_1_0.xsd"
  | 	version="1.0">
  | 	<persistence-unit name="DC" transaction-type="JTA">
  | 		<provider>org.hibernate.ejb.HibernatePersistence</provider>
  | 		<jta-data-source>java:/PostgresDCAP</jta-data-source>
  | 		<properties>
  | 			<property name="show_sql" value="true"/>
  | 			<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
  | 			<property name="hibernate.hbm2ddl.auto" value="create-drop" />
  | 		</properties>
  | 	</persistence-unit>
  | </persistence>
  | 

I also have included as a source directory (which gets put in the classpath) the files defined in the seam/embedded-ejb3/conf directory and modified the embedded-jboss-beans.xml to have a bootstrap datasource that matches the persistence unit defined in my persistence.xml.


  |    <bean name="PostgresDCAPBootstrap" class="org.jboss.resource.adapter.jdbc.local.LocalTxDataSource">
  |       <property name="driverClass">org.postgres.Driver</property>
  |       <property name="connectionURL">jdbc:postgresql://localhost:5432/test</property>
  |       <property name="userName">dcap</property>
  |       <property name="password">dcap</property>
  |       <property name="jndiName">java:/PostgresDCAP</property>
  |       <property name="minSize">0</property>
  |       <property name="maxSize">10</property>
  |       <property name="blockingTimeout">1000</property>
  |       <property name="idleTimeout">100000</property>
  |       <property name="transactionManager"><inject bean="TransactionManager"/></property>
  |       <property name="cachedConnectionManager"><inject bean="CachedConnectionManager"/></property>
  |       <property name="initialContextProperties"><inject bean="InitialContextProperties"/></property>
  |    </bean>
  | 
  |    <bean name="PostgresDCAP" class="java.lang.Object">
  |       <constructor factoryMethod="getDatasource">
  |          <factory bean="PostgresDCAPBootstrap"/>
  |       </constructor>
  |    </bean>
  | 

Any ideas what I'm doing wrong. 

Thanks.
Eric Ray

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3961607#3961607

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3961607



More information about the jboss-user mailing list