You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by Quintin Beukes <qu...@last.za.net> on 2009/10/13 16:47:20 UTC

Singletons don't have transactions?

Hey,

I have an odd problem. I created a singleton bean, gave it @Startup
and want to initialize the database. Though, when I tried to use the
entity manager in the @PostConstruct method, I get the errors listed
at the below. This is even if I specified
@TransactionAttribute(TransactionAttributeType.REQUIRED), which
according to the spec means the transaction HAS to be started. So I
would think this is a bug?

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running net.kunye.platform.init.InitializeKMSPlatformTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.026 sec
Running net.kunye.test.TestBeanTest
Apache OpenEJB 3.1.2-SNAPSHOT    build: 20091009-07:14
http://openejb.apache.org/
INFO - openejb.home = /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb
INFO - openejb.base = /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb
INFO - Configuring Service(id=Default Security Service,
type=SecurityService, provider-id=Default Security Service)
INFO - Configuring Service(id=Default Transaction Manager,
type=TransactionManager, provider-id=Default Transaction Manager)
INFO - Configuring Service(id=jdbc_kmsPool, type=Resource,
provider-id=Default JDBC Database)
INFO - Found EjbModule in classpath:
/home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/classes
INFO - Found EjbModule in classpath:
/home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/test-classes
INFO - Found ClientModule in classpath:
/home/mavenrepo/org/hibernate/hibernate-core/3.3.2.GA/hibernate-core-3.3.2.GA.jar
INFO - Found EjbModule in classpath:
/home/mavenrepo/net/kunye/UnitTesting/1.0/UnitTesting-1.0.jar
INFO - Found ClientModule in classpath:
/home/mavenrepo/javassist/javassist/3.4.GA/javassist-3.4.GA.jar
INFO - Beginning load:
/home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/classes
INFO - Beginning load:
/home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/test-classes
INFO - Beginning load:
/home/mavenrepo/org/hibernate/hibernate-core/3.3.2.GA/hibernate-core-3.3.2.GA.jar
INFO - Beginning load:
/home/mavenrepo/net/kunye/UnitTesting/1.0/UnitTesting-1.0.jar
INFO - Beginning load:
/home/mavenrepo/javassist/javassist/3.4.GA/javassist-3.4.GA.jar
INFO - Configuring enterprise application: classpath.ear
INFO - Configuring Service(id=Default Singleton Container,
type=Container, provider-id=Default Singleton Container)
INFO - Auto-creating a container for bean SiteBean:
Container(type=SINGLETON, id=Default Singleton Container)
INFO - Configuring Service(id=Default Stateless Container,
type=Container, provider-id=Default Stateless Container)
INFO - Auto-creating a container for bean TestBean:
Container(type=STATELESS, id=Default Stateless Container)
INFO - Configuring PersistenceUnit(name=KMSPlatform-PU,
provider=org.hibernate.ejb.HibernatePersistence)
INFO - Auto-creating a Resource with id 'jdbc_kmsPoolNonJta' of type
'DataSource for 'KMSPlatform-PU'.
INFO - Configuring Service(id=jdbc_kmsPoolNonJta, type=Resource,
provider-id=jdbc_kmsPool)
INFO - Adjusting PersistenceUnit KMSPlatform-PU <jta-data-source> to
Resource ID 'jdbc_kmsPool' from 'jdbc/kmsPool'
INFO - Adjusting PersistenceUnit KMSPlatform-PU <non-jta-data-source>
to Resource ID 'jdbc_kmsPoolNonJta' from 'null'
INFO - Enterprise application "classpath.ear" loaded.
INFO - Assembling app: classpath.ear
INFO - PersistenceUnit(name=KMSPlatform-PU,
provider=org.hibernate.ejb.HibernatePersistence)
INFO - Jndi(name=SiteBeanLocal) --> Ejb(deployment-id=SiteBean)
INFO - Jndi(name=SiteBeanRemote) --> Ejb(deployment-id=SiteBean)
INFO - Jndi(name=InitializeKMSPlatformLocal) -->
Ejb(deployment-id=InitializeKMSPlatform)
INFO - Jndi(name=SpringContextBeanLocal) -->
Ejb(deployment-id=SpringContextBean)
INFO - Jndi(name=TestBeanLocal) --> Ejb(deployment-id=TestBean)
INFO - Jndi(name=TestBeanRemote) --> Ejb(deployment-id=TestBean)
INFO - Jndi(name=UnauthenticatedUserBeanLocal) -->
Ejb(deployment-id=UnauthenticatedUserBean)
INFO - Jndi(name=StandardUserBeanLocal) --> Ejb(deployment-id=StandardUserBean)
INFO - Jndi(name=AdminBeanLocal) --> Ejb(deployment-id=AdminBean)
INFO - Jndi(name=LampRoomBeanLocal) --> Ejb(deployment-id=LampRoomBean)
INFO - Jndi(name=VdsAdminBeanLocal) --> Ejb(deployment-id=VdsAdminBean)
INFO - Jndi(name=PersonnelAdminBeanLocal) -->
Ejb(deployment-id=PersonnelAdminBean)
INFO - Jndi(name=LampRepairBeanLocal) --> Ejb(deployment-id=LampRepairBean)
INFO - Jndi(name=ServerComponentsBeanLocal) -->
Ejb(deployment-id=ServerComponentsBean)
INFO - Created Ejb(deployment-id=UnauthenticatedUserBean,
ejb-name=UnauthenticatedUserBean, container=Default Stateless
Container)
INFO - Created Ejb(deployment-id=PersonnelAdminBean,
ejb-name=PersonnelAdminBean, container=Default Stateless Container)
INFO - Created Ejb(deployment-id=VdsAdminBean, ejb-name=VdsAdminBean,
container=Default Stateless Container)
INFO - Created Ejb(deployment-id=LampRepairBean,
ejb-name=LampRepairBean, container=Default Stateless Container)
INFO - Created Ejb(deployment-id=StandardUserBean,
ejb-name=StandardUserBean, container=Default Stateless Container)
INFO - Created Ejb(deployment-id=LampRoomBean, ejb-name=LampRoomBean,
container=Default Stateless Container)
INFO - Created Ejb(deployment-id=ServerComponentsBean,
ejb-name=ServerComponentsBean, container=Default Stateless Container)
INFO - Created Ejb(deployment-id=AdminBean, ejb-name=AdminBean,
container=Default Stateless Container)
INFO - Created Ejb(deployment-id=TestBean, ejb-name=TestBean,
container=Default Stateless Container)
INFO - Created Ejb(deployment-id=SpringContextBean,
ejb-name=SpringContextBean, container=Default Singleton Container)
INFO - Created Ejb(deployment-id=SiteBean, ejb-name=SiteBean,
container=Default Singleton Container)
SINGLETON STARTUP
Created NEW Spring App Context
Persisting entity: net.kunye.security.auth.Role
ERROR - The bean instance threw a system
exception:javax.persistence.TransactionRequiredException
javax.persistence.TransactionRequiredException
        at org.apache.openejb.persistence.JtaEntityManager.assertTransactionActive(JtaEntityManager.java:75)
        at org.apache.openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java:96)
        at net.kunye.platform.init.InitializeKMSPlatform.initialize(InitializeKMSPlatform.java:63)
        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.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
        at org.apache.openejb.core.interceptor.ReflectionInvocationContext$LifecycleInvocation.invoke(ReflectionInvocationContext.java:189)
        at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
        at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
        at org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:204)
        at org.apache.openejb.core.singleton.SingletonInstanceManager.access$100(SingletonInstanceManager.java:60)
        at org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:86)
        at org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:84)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at org.apache.openejb.core.singleton.SingletonInstanceManager.getInstance(SingletonInstanceManager.java:96)
        at org.apache.openejb.core.singleton.SingletonContainer.deploy(SingletonContainer.java:128)
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:598)
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:449)
        at org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:367)
        at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:279)
        at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:137)
        at org.apache.openejb.OpenEJB.init(OpenEJB.java:286)
        at org.apache.openejb.OpenEJB.init(OpenEJB.java:265)
        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.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
        at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
        at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
        at org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42)
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
        at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
        at javax.naming.InitialContext.init(InitialContext.java:223)
        at javax.naming.InitialContext.<init>(InitialContext.java:197)
        at org.apache.openejb.junit.context.OpenEjbTestContext.getInitialContext(OpenEjbTestContext.java:162)
        at org.apache.openejb.junit.context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java:125)
        at org.apache.openejb.junit.context.ContextWrapperStatement.evaluate(ContextWrapperStatement.java:44)
        at org.apache.openejb.junit.model.MultiStatementExecutor.evaluate(MultiStatementExecutor.java:45)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
        at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
        at org.apache.openejb.junit.OpenEjbRunner.run(OpenEjbRunner.java:169)
        at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
        at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
        at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
        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:345)
        at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
INFO - Undeploying app: classpath.ear
ERROR - Singleton shutdown failed: InitializeKMSPlatform
java.lang.NullPointerException
        at org.apache.openejb.core.singleton.SingletonInstanceManager.freeInstance(SingletonInstanceManager.java:311)
        at org.apache.openejb.core.singleton.SingletonContainer.undeploy(SingletonContainer.java:146)
        at org.apache.openejb.core.singleton.SingletonContainer.undeploy(SingletonContainer.java:139)
        at org.apache.openejb.assembler.classic.Assembler.destroyApplication(Assembler.java:844)
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:662)
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:449)
        at org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:367)
        at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:279)
        at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:137)
        at org.apache.openejb.OpenEJB.init(OpenEJB.java:286)
        at org.apache.openejb.OpenEJB.init(OpenEJB.java:265)
        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.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
        at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
        at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
        at org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42)
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
        at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
        at javax.naming.InitialContext.init(InitialContext.java:223)
        at javax.naming.InitialContext.<init>(InitialContext.java:197)
        at org.apache.openejb.junit.context.OpenEjbTestContext.getInitialContext(OpenEjbTestContext.java:162)
        at org.apache.openejb.junit.context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java:125)
        at org.apache.openejb.junit.context.ContextWrapperStatement.evaluate(ContextWrapperStatement.java:44)
        at org.apache.openejb.junit.model.MultiStatementExecutor.evaluate(MultiStatementExecutor.java:45)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
        at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
        at org.apache.openejb.junit.OpenEjbRunner.run(OpenEjbRunner.java:169)
        at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
        at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
        at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
        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:345)
        at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
ERROR - Application could not be deployed:  classpath.ear
org.apache.openejb.OpenEJBException: Creating application failed:
classpath.ear: Error deploying 'InitializeKMSPlatform'.  Exception:
class org.apache.openejb.OpenEJBException: Singleton startup failed:
InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton failed
to initialize: Singleton failed to initialize: Singleton startup
failed: InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton
failed to initialize: Singleton failed to initialize
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:666)
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:449)
        at org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:367)
        at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:279)
        at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:137)
        at org.apache.openejb.OpenEJB.init(OpenEJB.java:286)
        at org.apache.openejb.OpenEJB.init(OpenEJB.java:265)
        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.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
        at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
        at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
        at org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42)
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
        at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
        at javax.naming.InitialContext.init(InitialContext.java:223)
        at javax.naming.InitialContext.<init>(InitialContext.java:197)
        at org.apache.openejb.junit.context.OpenEjbTestContext.getInitialContext(OpenEjbTestContext.java:162)
        at org.apache.openejb.junit.context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java:125)
        at org.apache.openejb.junit.context.ContextWrapperStatement.evaluate(ContextWrapperStatement.java:44)
        at org.apache.openejb.junit.model.MultiStatementExecutor.evaluate(MultiStatementExecutor.java:45)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
        at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
        at org.apache.openejb.junit.OpenEjbRunner.run(OpenEjbRunner.java:169)
        at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
        at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
        at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
        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:345)
        at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
Caused by: org.apache.openejb.OpenEJBException: Error deploying
'InitializeKMSPlatform'.  Exception: class
org.apache.openejb.OpenEJBException: Singleton startup failed:
InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton failed
to initialize: Singleton failed to initialize: Singleton startup
failed: InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton
failed to initialize: Singleton failed to initialize
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:601)
        ... 41 more
Caused by: org.apache.openejb.OpenEJBException: Singleton startup
failed: InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton
failed to initialize: Singleton failed to initialize
        at org.apache.openejb.core.singleton.SingletonContainer.deploy(SingletonContainer.java:133)
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:598)
        ... 41 more
Caused by: org.apache.openejb.ApplicationException:
javax.ejb.NoSuchEJBException: Singleton failed to initialize:
Singleton failed to initialize
        at org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:230)
        at org.apache.openejb.core.singleton.SingletonInstanceManager.access$100(SingletonInstanceManager.java:60)
        at org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:86)
        at org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:84)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at org.apache.openejb.core.singleton.SingletonInstanceManager.getInstance(SingletonInstanceManager.java:96)
        at org.apache.openejb.core.singleton.SingletonContainer.deploy(SingletonContainer.java:128)
        ... 42 more
Caused by: javax.ejb.NoSuchEJBException: Singleton failed to initialize
        ... 50 more
Caused by: javax.persistence.TransactionRequiredException
        at org.apache.openejb.persistence.JtaEntityManager.assertTransactionActive(JtaEntityManager.java:75)
        at org.apache.openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java:96)
        at net.kunye.platform.init.InitializeKMSPlatform.initialize(InitializeKMSPlatform.java:63)
        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.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
        at org.apache.openejb.core.interceptor.ReflectionInvocationContext$LifecycleInvocation.invoke(ReflectionInvocationContext.java:189)
        at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
        at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
        at org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:204)
        ... 49 more
INFO - Logging in
INFO - Logging in

Quintin Beukes

Re: Singletons don't have transactions?

Posted by David Blevins <da...@visi.com>.
On Oct 15, 2009, at 5:10 AM, Quintin Beukes wrote:

> Understood. I'll, for the mean time until it's implemented make a
> dedicated @Startup bean, which would then call the rest, so they are
> invoked as business methods.

Good workaround.

-David

> On Thu, Oct 15, 2009 at 3:33 AM, David Blevins  
> <da...@visi.com> wrote:
>> Not a bug, but just a reflection of the spec requirements at the  
>> time we
>> implemented Singleton beans.  Singleton lifecycle methods were  
>> originally
>> not allowed to use transactions.  We changed this on the spec side  
>> some time
>> after.
>>
>> -David
>>
>>
>> On Oct 13, 2009, at 7:47 AM, Quintin Beukes wrote:
>>
>>> Hey,
>>>
>>> I have an odd problem. I created a singleton bean, gave it @Startup
>>> and want to initialize the database. Though, when I tried to use the
>>> entity manager in the @PostConstruct method, I get the errors listed
>>> at the below. This is even if I specified
>>> @TransactionAttribute(TransactionAttributeType.REQUIRED), which
>>> according to the spec means the transaction HAS to be started. So I
>>> would think this is a bug?
>>>
>>> -------------------------------------------------------
>>> T E S T S
>>> -------------------------------------------------------
>>> Running net.kunye.platform.init.InitializeKMSPlatformTest
>>> Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:  
>>> 0.026 sec
>>> Running net.kunye.test.TestBeanTest
>>> Apache OpenEJB 3.1.2-SNAPSHOT    build: 20091009-07:14
>>> http://openejb.apache.org/
>>> INFO - openejb.home = /home/quintin/dev/kms/KMSPlatform/ 
>>> KMSPlatform-ejb
>>> INFO - openejb.base = /home/quintin/dev/kms/KMSPlatform/ 
>>> KMSPlatform-ejb
>>> INFO - Configuring Service(id=Default Security Service,
>>> type=SecurityService, provider-id=Default Security Service)
>>> INFO - Configuring Service(id=Default Transaction Manager,
>>> type=TransactionManager, provider-id=Default Transaction Manager)
>>> INFO - Configuring Service(id=jdbc_kmsPool, type=Resource,
>>> provider-id=Default JDBC Database)
>>> INFO - Found EjbModule in classpath:
>>> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/classes
>>> INFO - Found EjbModule in classpath:
>>> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/test- 
>>> classes
>>> INFO - Found ClientModule in classpath:
>>>
>>> /home/mavenrepo/org/hibernate/hibernate-core/3.3.2.GA/hibernate- 
>>> core-3.3.2.GA.jar
>>> INFO - Found EjbModule in classpath:
>>> /home/mavenrepo/net/kunye/UnitTesting/1.0/UnitTesting-1.0.jar
>>> INFO - Found ClientModule in classpath:
>>> /home/mavenrepo/javassist/javassist/3.4.GA/javassist-3.4.GA.jar
>>> INFO - Beginning load:
>>> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/classes
>>> INFO - Beginning load:
>>> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/test- 
>>> classes
>>> INFO - Beginning load:
>>>
>>> /home/mavenrepo/org/hibernate/hibernate-core/3.3.2.GA/hibernate- 
>>> core-3.3.2.GA.jar
>>> INFO - Beginning load:
>>> /home/mavenrepo/net/kunye/UnitTesting/1.0/UnitTesting-1.0.jar
>>> INFO - Beginning load:
>>> /home/mavenrepo/javassist/javassist/3.4.GA/javassist-3.4.GA.jar
>>> INFO - Configuring enterprise application: classpath.ear
>>> INFO - Configuring Service(id=Default Singleton Container,
>>> type=Container, provider-id=Default Singleton Container)
>>> INFO - Auto-creating a container for bean SiteBean:
>>> Container(type=SINGLETON, id=Default Singleton Container)
>>> INFO - Configuring Service(id=Default Stateless Container,
>>> type=Container, provider-id=Default Stateless Container)
>>> INFO - Auto-creating a container for bean TestBean:
>>> Container(type=STATELESS, id=Default Stateless Container)
>>> INFO - Configuring PersistenceUnit(name=KMSPlatform-PU,
>>> provider=org.hibernate.ejb.HibernatePersistence)
>>> INFO - Auto-creating a Resource with id 'jdbc_kmsPoolNonJta' of type
>>> 'DataSource for 'KMSPlatform-PU'.
>>> INFO - Configuring Service(id=jdbc_kmsPoolNonJta, type=Resource,
>>> provider-id=jdbc_kmsPool)
>>> INFO - Adjusting PersistenceUnit KMSPlatform-PU <jta-data-source> to
>>> Resource ID 'jdbc_kmsPool' from 'jdbc/kmsPool'
>>> INFO - Adjusting PersistenceUnit KMSPlatform-PU <non-jta-data- 
>>> source>
>>> to Resource ID 'jdbc_kmsPoolNonJta' from 'null'
>>> INFO - Enterprise application "classpath.ear" loaded.
>>> INFO - Assembling app: classpath.ear
>>> INFO - PersistenceUnit(name=KMSPlatform-PU,
>>> provider=org.hibernate.ejb.HibernatePersistence)
>>> INFO - Jndi(name=SiteBeanLocal) --> Ejb(deployment-id=SiteBean)
>>> INFO - Jndi(name=SiteBeanRemote) --> Ejb(deployment-id=SiteBean)
>>> INFO - Jndi(name=InitializeKMSPlatformLocal) -->
>>> Ejb(deployment-id=InitializeKMSPlatform)
>>> INFO - Jndi(name=SpringContextBeanLocal) -->
>>> Ejb(deployment-id=SpringContextBean)
>>> INFO - Jndi(name=TestBeanLocal) --> Ejb(deployment-id=TestBean)
>>> INFO - Jndi(name=TestBeanRemote) --> Ejb(deployment-id=TestBean)
>>> INFO - Jndi(name=UnauthenticatedUserBeanLocal) -->
>>> Ejb(deployment-id=UnauthenticatedUserBean)
>>> INFO - Jndi(name=StandardUserBeanLocal) -->
>>> Ejb(deployment-id=StandardUserBean)
>>> INFO - Jndi(name=AdminBeanLocal) --> Ejb(deployment-id=AdminBean)
>>> INFO - Jndi(name=LampRoomBeanLocal) --> Ejb(deployment- 
>>> id=LampRoomBean)
>>> INFO - Jndi(name=VdsAdminBeanLocal) --> Ejb(deployment- 
>>> id=VdsAdminBean)
>>> INFO - Jndi(name=PersonnelAdminBeanLocal) -->
>>> Ejb(deployment-id=PersonnelAdminBean)
>>> INFO - Jndi(name=LampRepairBeanLocal) -->
>>> Ejb(deployment-id=LampRepairBean)
>>> INFO - Jndi(name=ServerComponentsBeanLocal) -->
>>> Ejb(deployment-id=ServerComponentsBean)
>>> INFO - Created Ejb(deployment-id=UnauthenticatedUserBean,
>>> ejb-name=UnauthenticatedUserBean, container=Default Stateless
>>> Container)
>>> INFO - Created Ejb(deployment-id=PersonnelAdminBean,
>>> ejb-name=PersonnelAdminBean, container=Default Stateless Container)
>>> INFO - Created Ejb(deployment-id=VdsAdminBean, ejb- 
>>> name=VdsAdminBean,
>>> container=Default Stateless Container)
>>> INFO - Created Ejb(deployment-id=LampRepairBean,
>>> ejb-name=LampRepairBean, container=Default Stateless Container)
>>> INFO - Created Ejb(deployment-id=StandardUserBean,
>>> ejb-name=StandardUserBean, container=Default Stateless Container)
>>> INFO - Created Ejb(deployment-id=LampRoomBean, ejb- 
>>> name=LampRoomBean,
>>> container=Default Stateless Container)
>>> INFO - Created Ejb(deployment-id=ServerComponentsBean,
>>> ejb-name=ServerComponentsBean, container=Default Stateless  
>>> Container)
>>> INFO - Created Ejb(deployment-id=AdminBean, ejb-name=AdminBean,
>>> container=Default Stateless Container)
>>> INFO - Created Ejb(deployment-id=TestBean, ejb-name=TestBean,
>>> container=Default Stateless Container)
>>> INFO - Created Ejb(deployment-id=SpringContextBean,
>>> ejb-name=SpringContextBean, container=Default Singleton Container)
>>> INFO - Created Ejb(deployment-id=SiteBean, ejb-name=SiteBean,
>>> container=Default Singleton Container)
>>> SINGLETON STARTUP
>>> Created NEW Spring App Context
>>> Persisting entity: net.kunye.security.auth.Role
>>> ERROR - The bean instance threw a system
>>> exception:javax.persistence.TransactionRequiredException
>>> javax.persistence.TransactionRequiredException
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .persistence 
>>> .JtaEntityManager.assertTransactionActive(JtaEntityManager.java:75)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .persistence.JtaEntityManager.persist(JtaEntityManager.java:96)
>>>       at
>>> net 
>>> .kunye 
>>> .platform 
>>> .init.InitializeKMSPlatform.initialize(InitializeKMSPlatform.java: 
>>> 63)
>>>       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.openejb.core.interceptor.ReflectionInvocationContext 
>>> $Invocation.invoke(ReflectionInvocationContext.java:158)
>>>       at
>>> org.apache.openejb.core.interceptor.ReflectionInvocationContext 
>>> $LifecycleInvocation.invoke(ReflectionInvocationContext.java:189)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .core 
>>> .interceptor 
>>> .ReflectionInvocationContext 
>>> .proceed(ReflectionInvocationContext.java:141)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .core 
>>> .singleton 
>>> .SingletonInstanceManager 
>>> .createInstance(SingletonInstanceManager.java:204)
>>>       at
>>> org.apache.openejb.core.singleton.SingletonInstanceManager.access 
>>> $100(SingletonInstanceManager.java:60)
>>>       at
>>> org.apache.openejb.core.singleton.SingletonInstanceManager 
>>> $1.call(SingletonInstanceManager.java:86)
>>>       at
>>> org.apache.openejb.core.singleton.SingletonInstanceManager 
>>> $1.call(SingletonInstanceManager.java:84)
>>>       at
>>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>>       at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .core 
>>> .singleton 
>>> .SingletonInstanceManager 
>>> .getInstance(SingletonInstanceManager.java:96)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .core.singleton.SingletonContainer.deploy(SingletonContainer.java: 
>>> 128)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .assembler.classic.Assembler.createApplication(Assembler.java:598)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .assembler.classic.Assembler.createApplication(Assembler.java:449)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .assembler.classic.Assembler.buildContainerSystem(Assembler.java: 
>>> 367)
>>>       at
>>> org 
>>> .apache.openejb.assembler.classic.Assembler.build(Assembler.java: 
>>> 279)
>>>       at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java: 
>>> 137)
>>>       at org.apache.openejb.OpenEJB.init(OpenEJB.java:286)
>>>       at org.apache.openejb.OpenEJB.init(OpenEJB.java:265)
>>>       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.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .client 
>>> .LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .client 
>>> .LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .client 
>>> .LocalInitialContextFactory 
>>> .getInitialContext(LocalInitialContextFactory.java:42)
>>>       at
>>> javax 
>>> .naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
>>>       at
>>> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java: 
>>> 288)
>>>       at javax.naming.InitialContext.init(InitialContext.java:223)
>>>       at javax.naming.InitialContext.<init>(InitialContext.java:197)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .junit 
>>> .context 
>>> .OpenEjbTestContext.getInitialContext(OpenEjbTestContext.java:162)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .junit 
>>> .context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java: 
>>> 125)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .junit 
>>> .context 
>>> .ContextWrapperStatement.evaluate(ContextWrapperStatement.java:44)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .junit 
>>> .model.MultiStatementExecutor.evaluate(MultiStatementExecutor.java: 
>>> 45)
>>>       at
>>> org 
>>> .junit 
>>> .runners 
>>> .BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
>>>       at
>>> org 
>>> .junit 
>>> .runners 
>>> .BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
>>>       at  
>>> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>>>       at org.junit.runners.ParentRunner.access 
>>> $000(ParentRunner.java:41)
>>>       at org.junit.runners.ParentRunner 
>>> $1.evaluate(ParentRunner.java:173)
>>>       at
>>> org 
>>> .junit 
>>> .internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>>>       at
>>> org 
>>> .junit 
>>> .internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>>>       at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>>>       at
>>> org.apache.openejb.junit.OpenEjbRunner.run(OpenEjbRunner.java:169)
>>>       at
>>> org 
>>> .apache 
>>> .maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>>>       at
>>> org 
>>> .apache 
>>> .maven 
>>> .surefire 
>>> .suite 
>>> .AbstractDirectoryTestSuite 
>>> .executeTestSet(AbstractDirectoryTestSuite.java:140)
>>>       at
>>> org 
>>> .apache 
>>> .maven 
>>> .surefire 
>>> .suite 
>>> .AbstractDirectoryTestSuite 
>>> .execute(AbstractDirectoryTestSuite.java:127)
>>>       at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>>>       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:345)
>>>       at
>>> org 
>>> .apache 
>>> .maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
>>> INFO - Undeploying app: classpath.ear
>>> ERROR - Singleton shutdown failed: InitializeKMSPlatform
>>> java.lang.NullPointerException
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .core 
>>> .singleton 
>>> .SingletonInstanceManager 
>>> .freeInstance(SingletonInstanceManager.java:311)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .core 
>>> .singleton.SingletonContainer.undeploy(SingletonContainer.java:146)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .core 
>>> .singleton.SingletonContainer.undeploy(SingletonContainer.java:139)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .assembler.classic.Assembler.destroyApplication(Assembler.java:844)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .assembler.classic.Assembler.createApplication(Assembler.java:662)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .assembler.classic.Assembler.createApplication(Assembler.java:449)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .assembler.classic.Assembler.buildContainerSystem(Assembler.java: 
>>> 367)
>>>       at
>>> org 
>>> .apache.openejb.assembler.classic.Assembler.build(Assembler.java: 
>>> 279)
>>>       at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java: 
>>> 137)
>>>       at org.apache.openejb.OpenEJB.init(OpenEJB.java:286)
>>>       at org.apache.openejb.OpenEJB.init(OpenEJB.java:265)
>>>       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.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .client 
>>> .LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .client 
>>> .LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .client 
>>> .LocalInitialContextFactory 
>>> .getInitialContext(LocalInitialContextFactory.java:42)
>>>       at
>>> javax 
>>> .naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
>>>       at
>>> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java: 
>>> 288)
>>>       at javax.naming.InitialContext.init(InitialContext.java:223)
>>>       at javax.naming.InitialContext.<init>(InitialContext.java:197)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .junit 
>>> .context 
>>> .OpenEjbTestContext.getInitialContext(OpenEjbTestContext.java:162)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .junit 
>>> .context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java: 
>>> 125)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .junit 
>>> .context 
>>> .ContextWrapperStatement.evaluate(ContextWrapperStatement.java:44)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .junit 
>>> .model.MultiStatementExecutor.evaluate(MultiStatementExecutor.java: 
>>> 45)
>>>       at
>>> org 
>>> .junit 
>>> .runners 
>>> .BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
>>>       at
>>> org 
>>> .junit 
>>> .runners 
>>> .BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
>>>       at  
>>> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>>>       at org.junit.runners.ParentRunner.access 
>>> $000(ParentRunner.java:41)
>>>       at org.junit.runners.ParentRunner 
>>> $1.evaluate(ParentRunner.java:173)
>>>       at
>>> org 
>>> .junit 
>>> .internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>>>       at
>>> org 
>>> .junit 
>>> .internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>>>       at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>>>       at
>>> org.apache.openejb.junit.OpenEjbRunner.run(OpenEjbRunner.java:169)
>>>       at
>>> org 
>>> .apache 
>>> .maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>>>       at
>>> org 
>>> .apache 
>>> .maven 
>>> .surefire 
>>> .suite 
>>> .AbstractDirectoryTestSuite 
>>> .executeTestSet(AbstractDirectoryTestSuite.java:140)
>>>       at
>>> org 
>>> .apache 
>>> .maven 
>>> .surefire 
>>> .suite 
>>> .AbstractDirectoryTestSuite 
>>> .execute(AbstractDirectoryTestSuite.java:127)
>>>       at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>>>       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:345)
>>>       at
>>> org 
>>> .apache 
>>> .maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
>>> ERROR - Application could not be deployed:  classpath.ear
>>> org.apache.openejb.OpenEJBException: Creating application failed:
>>> classpath.ear: Error deploying 'InitializeKMSPlatform'.  Exception:
>>> class org.apache.openejb.OpenEJBException: Singleton startup failed:
>>> InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton  
>>> failed
>>> to initialize: Singleton failed to initialize: Singleton startup
>>> failed: InitializeKMSPlatform: javax.ejb.NoSuchEJBException:  
>>> Singleton
>>> failed to initialize: Singleton failed to initialize
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .assembler.classic.Assembler.createApplication(Assembler.java:666)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .assembler.classic.Assembler.createApplication(Assembler.java:449)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .assembler.classic.Assembler.buildContainerSystem(Assembler.java: 
>>> 367)
>>>       at
>>> org 
>>> .apache.openejb.assembler.classic.Assembler.build(Assembler.java: 
>>> 279)
>>>       at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java: 
>>> 137)
>>>       at org.apache.openejb.OpenEJB.init(OpenEJB.java:286)
>>>       at org.apache.openejb.OpenEJB.init(OpenEJB.java:265)
>>>       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.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .client 
>>> .LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .client 
>>> .LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .client 
>>> .LocalInitialContextFactory 
>>> .getInitialContext(LocalInitialContextFactory.java:42)
>>>       at
>>> javax 
>>> .naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
>>>       at
>>> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java: 
>>> 288)
>>>       at javax.naming.InitialContext.init(InitialContext.java:223)
>>>       at javax.naming.InitialContext.<init>(InitialContext.java:197)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .junit 
>>> .context 
>>> .OpenEjbTestContext.getInitialContext(OpenEjbTestContext.java:162)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .junit 
>>> .context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java: 
>>> 125)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .junit 
>>> .context 
>>> .ContextWrapperStatement.evaluate(ContextWrapperStatement.java:44)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .junit 
>>> .model.MultiStatementExecutor.evaluate(MultiStatementExecutor.java: 
>>> 45)
>>>       at
>>> org 
>>> .junit 
>>> .runners 
>>> .BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
>>>       at
>>> org 
>>> .junit 
>>> .runners 
>>> .BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
>>>       at  
>>> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>>>       at org.junit.runners.ParentRunner.access 
>>> $000(ParentRunner.java:41)
>>>       at org.junit.runners.ParentRunner 
>>> $1.evaluate(ParentRunner.java:173)
>>>       at
>>> org 
>>> .junit 
>>> .internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>>>       at
>>> org 
>>> .junit 
>>> .internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>>>       at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>>>       at
>>> org.apache.openejb.junit.OpenEjbRunner.run(OpenEjbRunner.java:169)
>>>       at
>>> org 
>>> .apache 
>>> .maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>>>       at
>>> org 
>>> .apache 
>>> .maven 
>>> .surefire 
>>> .suite 
>>> .AbstractDirectoryTestSuite 
>>> .executeTestSet(AbstractDirectoryTestSuite.java:140)
>>>       at
>>> org 
>>> .apache 
>>> .maven 
>>> .surefire 
>>> .suite 
>>> .AbstractDirectoryTestSuite 
>>> .execute(AbstractDirectoryTestSuite.java:127)
>>>       at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>>>       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:345)
>>>       at
>>> org 
>>> .apache 
>>> .maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
>>> Caused by: org.apache.openejb.OpenEJBException: Error deploying
>>> 'InitializeKMSPlatform'.  Exception: class
>>> org.apache.openejb.OpenEJBException: Singleton startup failed:
>>> InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton  
>>> failed
>>> to initialize: Singleton failed to initialize: Singleton startup
>>> failed: InitializeKMSPlatform: javax.ejb.NoSuchEJBException:  
>>> Singleton
>>> failed to initialize: Singleton failed to initialize
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .assembler.classic.Assembler.createApplication(Assembler.java:601)
>>>       ... 41 more
>>> Caused by: org.apache.openejb.OpenEJBException: Singleton startup
>>> failed: InitializeKMSPlatform: javax.ejb.NoSuchEJBException:  
>>> Singleton
>>> failed to initialize: Singleton failed to initialize
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .core.singleton.SingletonContainer.deploy(SingletonContainer.java: 
>>> 133)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .assembler.classic.Assembler.createApplication(Assembler.java:598)
>>>       ... 41 more
>>> Caused by: org.apache.openejb.ApplicationException:
>>> javax.ejb.NoSuchEJBException: Singleton failed to initialize:
>>> Singleton failed to initialize
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .core 
>>> .singleton 
>>> .SingletonInstanceManager 
>>> .createInstance(SingletonInstanceManager.java:230)
>>>       at
>>> org.apache.openejb.core.singleton.SingletonInstanceManager.access 
>>> $100(SingletonInstanceManager.java:60)
>>>       at
>>> org.apache.openejb.core.singleton.SingletonInstanceManager 
>>> $1.call(SingletonInstanceManager.java:86)
>>>       at
>>> org.apache.openejb.core.singleton.SingletonInstanceManager 
>>> $1.call(SingletonInstanceManager.java:84)
>>>       at
>>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>>       at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .core 
>>> .singleton 
>>> .SingletonInstanceManager 
>>> .getInstance(SingletonInstanceManager.java:96)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .core.singleton.SingletonContainer.deploy(SingletonContainer.java: 
>>> 128)
>>>       ... 42 more
>>> Caused by: javax.ejb.NoSuchEJBException: Singleton failed to  
>>> initialize
>>>       ... 50 more
>>> Caused by: javax.persistence.TransactionRequiredException
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .persistence 
>>> .JtaEntityManager.assertTransactionActive(JtaEntityManager.java:75)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .persistence.JtaEntityManager.persist(JtaEntityManager.java:96)
>>>       at
>>> net 
>>> .kunye 
>>> .platform 
>>> .init.InitializeKMSPlatform.initialize(InitializeKMSPlatform.java: 
>>> 63)
>>>       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.openejb.core.interceptor.ReflectionInvocationContext 
>>> $Invocation.invoke(ReflectionInvocationContext.java:158)
>>>       at
>>> org.apache.openejb.core.interceptor.ReflectionInvocationContext 
>>> $LifecycleInvocation.invoke(ReflectionInvocationContext.java:189)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .core 
>>> .interceptor 
>>> .ReflectionInvocationContext 
>>> .proceed(ReflectionInvocationContext.java:141)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
>>>       at
>>> org 
>>> .apache 
>>> .openejb 
>>> .core 
>>> .singleton 
>>> .SingletonInstanceManager 
>>> .createInstance(SingletonInstanceManager.java:204)
>>>       ... 49 more
>>> INFO - Logging in
>>> INFO - Logging in
>>>
>>> Quintin Beukes
>>>
>>
>>
>


Re: Singletons don't have transactions?

Posted by Quintin Beukes <qu...@skywalk.co.za>.
Understood. I'll, for the mean time until it's implemented make a
dedicated @Startup bean, which would then call the rest, so they are
invoked as business methods.

Quintin Beukes



On Thu, Oct 15, 2009 at 3:33 AM, David Blevins <da...@visi.com> wrote:
> Not a bug, but just a reflection of the spec requirements at the time we
> implemented Singleton beans.  Singleton lifecycle methods were originally
> not allowed to use transactions.  We changed this on the spec side some time
> after.
>
> -David
>
>
> On Oct 13, 2009, at 7:47 AM, Quintin Beukes wrote:
>
>> Hey,
>>
>> I have an odd problem. I created a singleton bean, gave it @Startup
>> and want to initialize the database. Though, when I tried to use the
>> entity manager in the @PostConstruct method, I get the errors listed
>> at the below. This is even if I specified
>> @TransactionAttribute(TransactionAttributeType.REQUIRED), which
>> according to the spec means the transaction HAS to be started. So I
>> would think this is a bug?
>>
>> -------------------------------------------------------
>> T E S T S
>> -------------------------------------------------------
>> Running net.kunye.platform.init.InitializeKMSPlatformTest
>> Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.026 sec
>> Running net.kunye.test.TestBeanTest
>> Apache OpenEJB 3.1.2-SNAPSHOT    build: 20091009-07:14
>> http://openejb.apache.org/
>> INFO - openejb.home = /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb
>> INFO - openejb.base = /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb
>> INFO - Configuring Service(id=Default Security Service,
>> type=SecurityService, provider-id=Default Security Service)
>> INFO - Configuring Service(id=Default Transaction Manager,
>> type=TransactionManager, provider-id=Default Transaction Manager)
>> INFO - Configuring Service(id=jdbc_kmsPool, type=Resource,
>> provider-id=Default JDBC Database)
>> INFO - Found EjbModule in classpath:
>> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/classes
>> INFO - Found EjbModule in classpath:
>> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/test-classes
>> INFO - Found ClientModule in classpath:
>>
>> /home/mavenrepo/org/hibernate/hibernate-core/3.3.2.GA/hibernate-core-3.3.2.GA.jar
>> INFO - Found EjbModule in classpath:
>> /home/mavenrepo/net/kunye/UnitTesting/1.0/UnitTesting-1.0.jar
>> INFO - Found ClientModule in classpath:
>> /home/mavenrepo/javassist/javassist/3.4.GA/javassist-3.4.GA.jar
>> INFO - Beginning load:
>> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/classes
>> INFO - Beginning load:
>> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/test-classes
>> INFO - Beginning load:
>>
>> /home/mavenrepo/org/hibernate/hibernate-core/3.3.2.GA/hibernate-core-3.3.2.GA.jar
>> INFO - Beginning load:
>> /home/mavenrepo/net/kunye/UnitTesting/1.0/UnitTesting-1.0.jar
>> INFO - Beginning load:
>> /home/mavenrepo/javassist/javassist/3.4.GA/javassist-3.4.GA.jar
>> INFO - Configuring enterprise application: classpath.ear
>> INFO - Configuring Service(id=Default Singleton Container,
>> type=Container, provider-id=Default Singleton Container)
>> INFO - Auto-creating a container for bean SiteBean:
>> Container(type=SINGLETON, id=Default Singleton Container)
>> INFO - Configuring Service(id=Default Stateless Container,
>> type=Container, provider-id=Default Stateless Container)
>> INFO - Auto-creating a container for bean TestBean:
>> Container(type=STATELESS, id=Default Stateless Container)
>> INFO - Configuring PersistenceUnit(name=KMSPlatform-PU,
>> provider=org.hibernate.ejb.HibernatePersistence)
>> INFO - Auto-creating a Resource with id 'jdbc_kmsPoolNonJta' of type
>> 'DataSource for 'KMSPlatform-PU'.
>> INFO - Configuring Service(id=jdbc_kmsPoolNonJta, type=Resource,
>> provider-id=jdbc_kmsPool)
>> INFO - Adjusting PersistenceUnit KMSPlatform-PU <jta-data-source> to
>> Resource ID 'jdbc_kmsPool' from 'jdbc/kmsPool'
>> INFO - Adjusting PersistenceUnit KMSPlatform-PU <non-jta-data-source>
>> to Resource ID 'jdbc_kmsPoolNonJta' from 'null'
>> INFO - Enterprise application "classpath.ear" loaded.
>> INFO - Assembling app: classpath.ear
>> INFO - PersistenceUnit(name=KMSPlatform-PU,
>> provider=org.hibernate.ejb.HibernatePersistence)
>> INFO - Jndi(name=SiteBeanLocal) --> Ejb(deployment-id=SiteBean)
>> INFO - Jndi(name=SiteBeanRemote) --> Ejb(deployment-id=SiteBean)
>> INFO - Jndi(name=InitializeKMSPlatformLocal) -->
>> Ejb(deployment-id=InitializeKMSPlatform)
>> INFO - Jndi(name=SpringContextBeanLocal) -->
>> Ejb(deployment-id=SpringContextBean)
>> INFO - Jndi(name=TestBeanLocal) --> Ejb(deployment-id=TestBean)
>> INFO - Jndi(name=TestBeanRemote) --> Ejb(deployment-id=TestBean)
>> INFO - Jndi(name=UnauthenticatedUserBeanLocal) -->
>> Ejb(deployment-id=UnauthenticatedUserBean)
>> INFO - Jndi(name=StandardUserBeanLocal) -->
>> Ejb(deployment-id=StandardUserBean)
>> INFO - Jndi(name=AdminBeanLocal) --> Ejb(deployment-id=AdminBean)
>> INFO - Jndi(name=LampRoomBeanLocal) --> Ejb(deployment-id=LampRoomBean)
>> INFO - Jndi(name=VdsAdminBeanLocal) --> Ejb(deployment-id=VdsAdminBean)
>> INFO - Jndi(name=PersonnelAdminBeanLocal) -->
>> Ejb(deployment-id=PersonnelAdminBean)
>> INFO - Jndi(name=LampRepairBeanLocal) -->
>> Ejb(deployment-id=LampRepairBean)
>> INFO - Jndi(name=ServerComponentsBeanLocal) -->
>> Ejb(deployment-id=ServerComponentsBean)
>> INFO - Created Ejb(deployment-id=UnauthenticatedUserBean,
>> ejb-name=UnauthenticatedUserBean, container=Default Stateless
>> Container)
>> INFO - Created Ejb(deployment-id=PersonnelAdminBean,
>> ejb-name=PersonnelAdminBean, container=Default Stateless Container)
>> INFO - Created Ejb(deployment-id=VdsAdminBean, ejb-name=VdsAdminBean,
>> container=Default Stateless Container)
>> INFO - Created Ejb(deployment-id=LampRepairBean,
>> ejb-name=LampRepairBean, container=Default Stateless Container)
>> INFO - Created Ejb(deployment-id=StandardUserBean,
>> ejb-name=StandardUserBean, container=Default Stateless Container)
>> INFO - Created Ejb(deployment-id=LampRoomBean, ejb-name=LampRoomBean,
>> container=Default Stateless Container)
>> INFO - Created Ejb(deployment-id=ServerComponentsBean,
>> ejb-name=ServerComponentsBean, container=Default Stateless Container)
>> INFO - Created Ejb(deployment-id=AdminBean, ejb-name=AdminBean,
>> container=Default Stateless Container)
>> INFO - Created Ejb(deployment-id=TestBean, ejb-name=TestBean,
>> container=Default Stateless Container)
>> INFO - Created Ejb(deployment-id=SpringContextBean,
>> ejb-name=SpringContextBean, container=Default Singleton Container)
>> INFO - Created Ejb(deployment-id=SiteBean, ejb-name=SiteBean,
>> container=Default Singleton Container)
>> SINGLETON STARTUP
>> Created NEW Spring App Context
>> Persisting entity: net.kunye.security.auth.Role
>> ERROR - The bean instance threw a system
>> exception:javax.persistence.TransactionRequiredException
>> javax.persistence.TransactionRequiredException
>>       at
>> org.apache.openejb.persistence.JtaEntityManager.assertTransactionActive(JtaEntityManager.java:75)
>>       at
>> org.apache.openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java:96)
>>       at
>> net.kunye.platform.init.InitializeKMSPlatform.initialize(InitializeKMSPlatform.java:63)
>>       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.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
>>       at
>> org.apache.openejb.core.interceptor.ReflectionInvocationContext$LifecycleInvocation.invoke(ReflectionInvocationContext.java:189)
>>       at
>> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
>>       at
>> org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
>>       at
>> org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:204)
>>       at
>> org.apache.openejb.core.singleton.SingletonInstanceManager.access$100(SingletonInstanceManager.java:60)
>>       at
>> org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:86)
>>       at
>> org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:84)
>>       at
>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>       at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>       at
>> org.apache.openejb.core.singleton.SingletonInstanceManager.getInstance(SingletonInstanceManager.java:96)
>>       at
>> org.apache.openejb.core.singleton.SingletonContainer.deploy(SingletonContainer.java:128)
>>       at
>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:598)
>>       at
>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:449)
>>       at
>> org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:367)
>>       at
>> org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:279)
>>       at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:137)
>>       at org.apache.openejb.OpenEJB.init(OpenEJB.java:286)
>>       at org.apache.openejb.OpenEJB.init(OpenEJB.java:265)
>>       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.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
>>       at
>> org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
>>       at
>> org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
>>       at
>> org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42)
>>       at
>> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
>>       at
>> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
>>       at javax.naming.InitialContext.init(InitialContext.java:223)
>>       at javax.naming.InitialContext.<init>(InitialContext.java:197)
>>       at
>> org.apache.openejb.junit.context.OpenEjbTestContext.getInitialContext(OpenEjbTestContext.java:162)
>>       at
>> org.apache.openejb.junit.context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java:125)
>>       at
>> org.apache.openejb.junit.context.ContextWrapperStatement.evaluate(ContextWrapperStatement.java:44)
>>       at
>> org.apache.openejb.junit.model.MultiStatementExecutor.evaluate(MultiStatementExecutor.java:45)
>>       at
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
>>       at
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
>>       at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>>       at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
>>       at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
>>       at
>> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>>       at
>> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>>       at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>>       at
>> org.apache.openejb.junit.OpenEjbRunner.run(OpenEjbRunner.java:169)
>>       at
>> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>>       at
>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
>>       at
>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
>>       at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>>       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:345)
>>       at
>> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
>> INFO - Undeploying app: classpath.ear
>> ERROR - Singleton shutdown failed: InitializeKMSPlatform
>> java.lang.NullPointerException
>>       at
>> org.apache.openejb.core.singleton.SingletonInstanceManager.freeInstance(SingletonInstanceManager.java:311)
>>       at
>> org.apache.openejb.core.singleton.SingletonContainer.undeploy(SingletonContainer.java:146)
>>       at
>> org.apache.openejb.core.singleton.SingletonContainer.undeploy(SingletonContainer.java:139)
>>       at
>> org.apache.openejb.assembler.classic.Assembler.destroyApplication(Assembler.java:844)
>>       at
>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:662)
>>       at
>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:449)
>>       at
>> org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:367)
>>       at
>> org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:279)
>>       at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:137)
>>       at org.apache.openejb.OpenEJB.init(OpenEJB.java:286)
>>       at org.apache.openejb.OpenEJB.init(OpenEJB.java:265)
>>       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.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
>>       at
>> org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
>>       at
>> org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
>>       at
>> org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42)
>>       at
>> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
>>       at
>> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
>>       at javax.naming.InitialContext.init(InitialContext.java:223)
>>       at javax.naming.InitialContext.<init>(InitialContext.java:197)
>>       at
>> org.apache.openejb.junit.context.OpenEjbTestContext.getInitialContext(OpenEjbTestContext.java:162)
>>       at
>> org.apache.openejb.junit.context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java:125)
>>       at
>> org.apache.openejb.junit.context.ContextWrapperStatement.evaluate(ContextWrapperStatement.java:44)
>>       at
>> org.apache.openejb.junit.model.MultiStatementExecutor.evaluate(MultiStatementExecutor.java:45)
>>       at
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
>>       at
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
>>       at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>>       at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
>>       at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
>>       at
>> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>>       at
>> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>>       at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>>       at
>> org.apache.openejb.junit.OpenEjbRunner.run(OpenEjbRunner.java:169)
>>       at
>> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>>       at
>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
>>       at
>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
>>       at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>>       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:345)
>>       at
>> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
>> ERROR - Application could not be deployed:  classpath.ear
>> org.apache.openejb.OpenEJBException: Creating application failed:
>> classpath.ear: Error deploying 'InitializeKMSPlatform'.  Exception:
>> class org.apache.openejb.OpenEJBException: Singleton startup failed:
>> InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton failed
>> to initialize: Singleton failed to initialize: Singleton startup
>> failed: InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton
>> failed to initialize: Singleton failed to initialize
>>       at
>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:666)
>>       at
>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:449)
>>       at
>> org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:367)
>>       at
>> org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:279)
>>       at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:137)
>>       at org.apache.openejb.OpenEJB.init(OpenEJB.java:286)
>>       at org.apache.openejb.OpenEJB.init(OpenEJB.java:265)
>>       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.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
>>       at
>> org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
>>       at
>> org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
>>       at
>> org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42)
>>       at
>> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
>>       at
>> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
>>       at javax.naming.InitialContext.init(InitialContext.java:223)
>>       at javax.naming.InitialContext.<init>(InitialContext.java:197)
>>       at
>> org.apache.openejb.junit.context.OpenEjbTestContext.getInitialContext(OpenEjbTestContext.java:162)
>>       at
>> org.apache.openejb.junit.context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java:125)
>>       at
>> org.apache.openejb.junit.context.ContextWrapperStatement.evaluate(ContextWrapperStatement.java:44)
>>       at
>> org.apache.openejb.junit.model.MultiStatementExecutor.evaluate(MultiStatementExecutor.java:45)
>>       at
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
>>       at
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
>>       at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>>       at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
>>       at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
>>       at
>> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>>       at
>> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>>       at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>>       at
>> org.apache.openejb.junit.OpenEjbRunner.run(OpenEjbRunner.java:169)
>>       at
>> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>>       at
>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
>>       at
>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
>>       at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>>       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:345)
>>       at
>> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
>> Caused by: org.apache.openejb.OpenEJBException: Error deploying
>> 'InitializeKMSPlatform'.  Exception: class
>> org.apache.openejb.OpenEJBException: Singleton startup failed:
>> InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton failed
>> to initialize: Singleton failed to initialize: Singleton startup
>> failed: InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton
>> failed to initialize: Singleton failed to initialize
>>       at
>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:601)
>>       ... 41 more
>> Caused by: org.apache.openejb.OpenEJBException: Singleton startup
>> failed: InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton
>> failed to initialize: Singleton failed to initialize
>>       at
>> org.apache.openejb.core.singleton.SingletonContainer.deploy(SingletonContainer.java:133)
>>       at
>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:598)
>>       ... 41 more
>> Caused by: org.apache.openejb.ApplicationException:
>> javax.ejb.NoSuchEJBException: Singleton failed to initialize:
>> Singleton failed to initialize
>>       at
>> org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:230)
>>       at
>> org.apache.openejb.core.singleton.SingletonInstanceManager.access$100(SingletonInstanceManager.java:60)
>>       at
>> org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:86)
>>       at
>> org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:84)
>>       at
>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>       at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>       at
>> org.apache.openejb.core.singleton.SingletonInstanceManager.getInstance(SingletonInstanceManager.java:96)
>>       at
>> org.apache.openejb.core.singleton.SingletonContainer.deploy(SingletonContainer.java:128)
>>       ... 42 more
>> Caused by: javax.ejb.NoSuchEJBException: Singleton failed to initialize
>>       ... 50 more
>> Caused by: javax.persistence.TransactionRequiredException
>>       at
>> org.apache.openejb.persistence.JtaEntityManager.assertTransactionActive(JtaEntityManager.java:75)
>>       at
>> org.apache.openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java:96)
>>       at
>> net.kunye.platform.init.InitializeKMSPlatform.initialize(InitializeKMSPlatform.java:63)
>>       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.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
>>       at
>> org.apache.openejb.core.interceptor.ReflectionInvocationContext$LifecycleInvocation.invoke(ReflectionInvocationContext.java:189)
>>       at
>> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
>>       at
>> org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
>>       at
>> org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:204)
>>       ... 49 more
>> INFO - Logging in
>> INFO - Logging in
>>
>> Quintin Beukes
>>
>
>

Re: Singletons don't have transactions?

Posted by David Blevins <da...@visi.com>.
Not a bug, but just a reflection of the spec requirements at the time  
we implemented Singleton beans.  Singleton lifecycle methods were  
originally not allowed to use transactions.  We changed this on the  
spec side some time after.

-David


On Oct 13, 2009, at 7:47 AM, Quintin Beukes wrote:

> Hey,
>
> I have an odd problem. I created a singleton bean, gave it @Startup
> and want to initialize the database. Though, when I tried to use the
> entity manager in the @PostConstruct method, I get the errors listed
> at the below. This is even if I specified
> @TransactionAttribute(TransactionAttributeType.REQUIRED), which
> according to the spec means the transaction HAS to be started. So I
> would think this is a bug?
>
> -------------------------------------------------------
> T E S T S
> -------------------------------------------------------
> Running net.kunye.platform.init.InitializeKMSPlatformTest
> Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:  
> 0.026 sec
> Running net.kunye.test.TestBeanTest
> Apache OpenEJB 3.1.2-SNAPSHOT    build: 20091009-07:14
> http://openejb.apache.org/
> INFO - openejb.home = /home/quintin/dev/kms/KMSPlatform/KMSPlatform- 
> ejb
> INFO - openejb.base = /home/quintin/dev/kms/KMSPlatform/KMSPlatform- 
> ejb
> INFO - Configuring Service(id=Default Security Service,
> type=SecurityService, provider-id=Default Security Service)
> INFO - Configuring Service(id=Default Transaction Manager,
> type=TransactionManager, provider-id=Default Transaction Manager)
> INFO - Configuring Service(id=jdbc_kmsPool, type=Resource,
> provider-id=Default JDBC Database)
> INFO - Found EjbModule in classpath:
> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/classes
> INFO - Found EjbModule in classpath:
> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/test-classes
> INFO - Found ClientModule in classpath:
> /home/mavenrepo/org/hibernate/hibernate-core/3.3.2.GA/hibernate- 
> core-3.3.2.GA.jar
> INFO - Found EjbModule in classpath:
> /home/mavenrepo/net/kunye/UnitTesting/1.0/UnitTesting-1.0.jar
> INFO - Found ClientModule in classpath:
> /home/mavenrepo/javassist/javassist/3.4.GA/javassist-3.4.GA.jar
> INFO - Beginning load:
> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/classes
> INFO - Beginning load:
> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/test-classes
> INFO - Beginning load:
> /home/mavenrepo/org/hibernate/hibernate-core/3.3.2.GA/hibernate- 
> core-3.3.2.GA.jar
> INFO - Beginning load:
> /home/mavenrepo/net/kunye/UnitTesting/1.0/UnitTesting-1.0.jar
> INFO - Beginning load:
> /home/mavenrepo/javassist/javassist/3.4.GA/javassist-3.4.GA.jar
> INFO - Configuring enterprise application: classpath.ear
> INFO - Configuring Service(id=Default Singleton Container,
> type=Container, provider-id=Default Singleton Container)
> INFO - Auto-creating a container for bean SiteBean:
> Container(type=SINGLETON, id=Default Singleton Container)
> INFO - Configuring Service(id=Default Stateless Container,
> type=Container, provider-id=Default Stateless Container)
> INFO - Auto-creating a container for bean TestBean:
> Container(type=STATELESS, id=Default Stateless Container)
> INFO - Configuring PersistenceUnit(name=KMSPlatform-PU,
> provider=org.hibernate.ejb.HibernatePersistence)
> INFO - Auto-creating a Resource with id 'jdbc_kmsPoolNonJta' of type
> 'DataSource for 'KMSPlatform-PU'.
> INFO - Configuring Service(id=jdbc_kmsPoolNonJta, type=Resource,
> provider-id=jdbc_kmsPool)
> INFO - Adjusting PersistenceUnit KMSPlatform-PU <jta-data-source> to
> Resource ID 'jdbc_kmsPool' from 'jdbc/kmsPool'
> INFO - Adjusting PersistenceUnit KMSPlatform-PU <non-jta-data-source>
> to Resource ID 'jdbc_kmsPoolNonJta' from 'null'
> INFO - Enterprise application "classpath.ear" loaded.
> INFO - Assembling app: classpath.ear
> INFO - PersistenceUnit(name=KMSPlatform-PU,
> provider=org.hibernate.ejb.HibernatePersistence)
> INFO - Jndi(name=SiteBeanLocal) --> Ejb(deployment-id=SiteBean)
> INFO - Jndi(name=SiteBeanRemote) --> Ejb(deployment-id=SiteBean)
> INFO - Jndi(name=InitializeKMSPlatformLocal) -->
> Ejb(deployment-id=InitializeKMSPlatform)
> INFO - Jndi(name=SpringContextBeanLocal) -->
> Ejb(deployment-id=SpringContextBean)
> INFO - Jndi(name=TestBeanLocal) --> Ejb(deployment-id=TestBean)
> INFO - Jndi(name=TestBeanRemote) --> Ejb(deployment-id=TestBean)
> INFO - Jndi(name=UnauthenticatedUserBeanLocal) -->
> Ejb(deployment-id=UnauthenticatedUserBean)
> INFO - Jndi(name=StandardUserBeanLocal) --> Ejb(deployment- 
> id=StandardUserBean)
> INFO - Jndi(name=AdminBeanLocal) --> Ejb(deployment-id=AdminBean)
> INFO - Jndi(name=LampRoomBeanLocal) --> Ejb(deployment- 
> id=LampRoomBean)
> INFO - Jndi(name=VdsAdminBeanLocal) --> Ejb(deployment- 
> id=VdsAdminBean)
> INFO - Jndi(name=PersonnelAdminBeanLocal) -->
> Ejb(deployment-id=PersonnelAdminBean)
> INFO - Jndi(name=LampRepairBeanLocal) --> Ejb(deployment- 
> id=LampRepairBean)
> INFO - Jndi(name=ServerComponentsBeanLocal) -->
> Ejb(deployment-id=ServerComponentsBean)
> INFO - Created Ejb(deployment-id=UnauthenticatedUserBean,
> ejb-name=UnauthenticatedUserBean, container=Default Stateless
> Container)
> INFO - Created Ejb(deployment-id=PersonnelAdminBean,
> ejb-name=PersonnelAdminBean, container=Default Stateless Container)
> INFO - Created Ejb(deployment-id=VdsAdminBean, ejb-name=VdsAdminBean,
> container=Default Stateless Container)
> INFO - Created Ejb(deployment-id=LampRepairBean,
> ejb-name=LampRepairBean, container=Default Stateless Container)
> INFO - Created Ejb(deployment-id=StandardUserBean,
> ejb-name=StandardUserBean, container=Default Stateless Container)
> INFO - Created Ejb(deployment-id=LampRoomBean, ejb-name=LampRoomBean,
> container=Default Stateless Container)
> INFO - Created Ejb(deployment-id=ServerComponentsBean,
> ejb-name=ServerComponentsBean, container=Default Stateless Container)
> INFO - Created Ejb(deployment-id=AdminBean, ejb-name=AdminBean,
> container=Default Stateless Container)
> INFO - Created Ejb(deployment-id=TestBean, ejb-name=TestBean,
> container=Default Stateless Container)
> INFO - Created Ejb(deployment-id=SpringContextBean,
> ejb-name=SpringContextBean, container=Default Singleton Container)
> INFO - Created Ejb(deployment-id=SiteBean, ejb-name=SiteBean,
> container=Default Singleton Container)
> SINGLETON STARTUP
> Created NEW Spring App Context
> Persisting entity: net.kunye.security.auth.Role
> ERROR - The bean instance threw a system
> exception:javax.persistence.TransactionRequiredException
> javax.persistence.TransactionRequiredException
>        at  
> org 
> .apache 
> .openejb 
> .persistence 
> .JtaEntityManager.assertTransactionActive(JtaEntityManager.java:75)
>        at  
> org 
> .apache 
> .openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java: 
> 96)
>        at  
> net 
> .kunye 
> .platform 
> .init.InitializeKMSPlatform.initialize(InitializeKMSPlatform.java:63)
>        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.openejb.core.interceptor.ReflectionInvocationContext 
> $Invocation.invoke(ReflectionInvocationContext.java:158)
>        at  
> org.apache.openejb.core.interceptor.ReflectionInvocationContext 
> $LifecycleInvocation.invoke(ReflectionInvocationContext.java:189)
>        at  
> org 
> .apache 
> .openejb 
> .core 
> .interceptor 
> .ReflectionInvocationContext 
> .proceed(ReflectionInvocationContext.java:141)
>        at  
> org 
> .apache 
> .openejb 
> .core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
>        at  
> org 
> .apache 
> .openejb 
> .core 
> .singleton 
> .SingletonInstanceManager 
> .createInstance(SingletonInstanceManager.java:204)
>        at  
> org.apache.openejb.core.singleton.SingletonInstanceManager.access 
> $100(SingletonInstanceManager.java:60)
>        at org.apache.openejb.core.singleton.SingletonInstanceManager 
> $1.call(SingletonInstanceManager.java:86)
>        at org.apache.openejb.core.singleton.SingletonInstanceManager 
> $1.call(SingletonInstanceManager.java:84)
>        at java.util.concurrent.FutureTask 
> $Sync.innerRun(FutureTask.java:303)
>        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>        at  
> org 
> .apache 
> .openejb 
> .core 
> .singleton 
> .SingletonInstanceManager.getInstance(SingletonInstanceManager.java: 
> 96)
>        at  
> org 
> .apache 
> .openejb 
> .core.singleton.SingletonContainer.deploy(SingletonContainer.java:128)
>        at  
> org 
> .apache 
> .openejb 
> .assembler.classic.Assembler.createApplication(Assembler.java:598)
>        at  
> org 
> .apache 
> .openejb 
> .assembler.classic.Assembler.createApplication(Assembler.java:449)
>        at  
> org 
> .apache 
> .openejb 
> .assembler.classic.Assembler.buildContainerSystem(Assembler.java:367)
>        at  
> org.apache.openejb.assembler.classic.Assembler.build(Assembler.java: 
> 279)
>        at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:137)
>        at org.apache.openejb.OpenEJB.init(OpenEJB.java:286)
>        at org.apache.openejb.OpenEJB.init(OpenEJB.java:265)
>        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.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java: 
> 36)
>        at  
> org 
> .apache 
> .openejb 
> .client 
> .LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
>        at  
> org 
> .apache 
> .openejb 
> .client 
> .LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
>        at  
> org 
> .apache 
> .openejb 
> .client 
> .LocalInitialContextFactory 
> .getInitialContext(LocalInitialContextFactory.java:42)
>        at  
> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java: 
> 667)
>        at  
> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
>        at javax.naming.InitialContext.init(InitialContext.java:223)
>        at javax.naming.InitialContext.<init>(InitialContext.java:197)
>        at  
> org 
> .apache 
> .openejb 
> .junit 
> .context 
> .OpenEjbTestContext.getInitialContext(OpenEjbTestContext.java:162)
>        at  
> org 
> .apache 
> .openejb 
> .junit 
> .context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java:125)
>        at  
> org 
> .apache 
> .openejb 
> .junit 
> .context 
> .ContextWrapperStatement.evaluate(ContextWrapperStatement.java:44)
>        at  
> org 
> .apache 
> .openejb 
> .junit 
> .model.MultiStatementExecutor.evaluate(MultiStatementExecutor.java:45)
>        at  
> org 
> .junit 
> .runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java: 
> 73)
>        at  
> org 
> .junit 
> .runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java: 
> 46)
>        at  
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>        at org.junit.runners.ParentRunner.access 
> $000(ParentRunner.java:41)
>        at org.junit.runners.ParentRunner 
> $1.evaluate(ParentRunner.java:173)
>        at  
> org 
> .junit 
> .internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>        at  
> org 
> .junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java: 
> 31)
>        at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>        at  
> org.apache.openejb.junit.OpenEjbRunner.run(OpenEjbRunner.java:169)
>        at  
> org 
> .apache 
> .maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>        at  
> org 
> .apache 
> .maven 
> .surefire 
> .suite 
> .AbstractDirectoryTestSuite 
> .executeTestSet(AbstractDirectoryTestSuite.java:140)
>        at  
> org 
> .apache 
> .maven 
> .surefire 
> .suite 
> .AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java: 
> 127)
>        at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>        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:345)
>        at  
> org 
> .apache 
> .maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
> INFO - Undeploying app: classpath.ear
> ERROR - Singleton shutdown failed: InitializeKMSPlatform
> java.lang.NullPointerException
>        at  
> org 
> .apache 
> .openejb 
> .core 
> .singleton 
> .SingletonInstanceManager.freeInstance(SingletonInstanceManager.java: 
> 311)
>        at  
> org 
> .apache 
> .openejb 
> .core.singleton.SingletonContainer.undeploy(SingletonContainer.java: 
> 146)
>        at  
> org 
> .apache 
> .openejb 
> .core.singleton.SingletonContainer.undeploy(SingletonContainer.java: 
> 139)
>        at  
> org 
> .apache 
> .openejb 
> .assembler.classic.Assembler.destroyApplication(Assembler.java:844)
>        at  
> org 
> .apache 
> .openejb 
> .assembler.classic.Assembler.createApplication(Assembler.java:662)
>        at  
> org 
> .apache 
> .openejb 
> .assembler.classic.Assembler.createApplication(Assembler.java:449)
>        at  
> org 
> .apache 
> .openejb 
> .assembler.classic.Assembler.buildContainerSystem(Assembler.java:367)
>        at  
> org.apache.openejb.assembler.classic.Assembler.build(Assembler.java: 
> 279)
>        at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:137)
>        at org.apache.openejb.OpenEJB.init(OpenEJB.java:286)
>        at org.apache.openejb.OpenEJB.init(OpenEJB.java:265)
>        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.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java: 
> 36)
>        at  
> org 
> .apache 
> .openejb 
> .client 
> .LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
>        at  
> org 
> .apache 
> .openejb 
> .client 
> .LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
>        at  
> org 
> .apache 
> .openejb 
> .client 
> .LocalInitialContextFactory 
> .getInitialContext(LocalInitialContextFactory.java:42)
>        at  
> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java: 
> 667)
>        at  
> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
>        at javax.naming.InitialContext.init(InitialContext.java:223)
>        at javax.naming.InitialContext.<init>(InitialContext.java:197)
>        at  
> org 
> .apache 
> .openejb 
> .junit 
> .context 
> .OpenEjbTestContext.getInitialContext(OpenEjbTestContext.java:162)
>        at  
> org 
> .apache 
> .openejb 
> .junit 
> .context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java:125)
>        at  
> org 
> .apache 
> .openejb 
> .junit 
> .context 
> .ContextWrapperStatement.evaluate(ContextWrapperStatement.java:44)
>        at  
> org 
> .apache 
> .openejb 
> .junit 
> .model.MultiStatementExecutor.evaluate(MultiStatementExecutor.java:45)
>        at  
> org 
> .junit 
> .runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java: 
> 73)
>        at  
> org 
> .junit 
> .runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java: 
> 46)
>        at  
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>        at org.junit.runners.ParentRunner.access 
> $000(ParentRunner.java:41)
>        at org.junit.runners.ParentRunner 
> $1.evaluate(ParentRunner.java:173)
>        at  
> org 
> .junit 
> .internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>        at  
> org 
> .junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java: 
> 31)
>        at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>        at  
> org.apache.openejb.junit.OpenEjbRunner.run(OpenEjbRunner.java:169)
>        at  
> org 
> .apache 
> .maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>        at  
> org 
> .apache 
> .maven 
> .surefire 
> .suite 
> .AbstractDirectoryTestSuite 
> .executeTestSet(AbstractDirectoryTestSuite.java:140)
>        at  
> org 
> .apache 
> .maven 
> .surefire 
> .suite 
> .AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java: 
> 127)
>        at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>        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:345)
>        at  
> org 
> .apache 
> .maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
> ERROR - Application could not be deployed:  classpath.ear
> org.apache.openejb.OpenEJBException: Creating application failed:
> classpath.ear: Error deploying 'InitializeKMSPlatform'.  Exception:
> class org.apache.openejb.OpenEJBException: Singleton startup failed:
> InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton failed
> to initialize: Singleton failed to initialize: Singleton startup
> failed: InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton
> failed to initialize: Singleton failed to initialize
>        at  
> org 
> .apache 
> .openejb 
> .assembler.classic.Assembler.createApplication(Assembler.java:666)
>        at  
> org 
> .apache 
> .openejb 
> .assembler.classic.Assembler.createApplication(Assembler.java:449)
>        at  
> org 
> .apache 
> .openejb 
> .assembler.classic.Assembler.buildContainerSystem(Assembler.java:367)
>        at  
> org.apache.openejb.assembler.classic.Assembler.build(Assembler.java: 
> 279)
>        at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:137)
>        at org.apache.openejb.OpenEJB.init(OpenEJB.java:286)
>        at org.apache.openejb.OpenEJB.init(OpenEJB.java:265)
>        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.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java: 
> 36)
>        at  
> org 
> .apache 
> .openejb 
> .client 
> .LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
>        at  
> org 
> .apache 
> .openejb 
> .client 
> .LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
>        at  
> org 
> .apache 
> .openejb 
> .client 
> .LocalInitialContextFactory 
> .getInitialContext(LocalInitialContextFactory.java:42)
>        at  
> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java: 
> 667)
>        at  
> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
>        at javax.naming.InitialContext.init(InitialContext.java:223)
>        at javax.naming.InitialContext.<init>(InitialContext.java:197)
>        at  
> org 
> .apache 
> .openejb 
> .junit 
> .context 
> .OpenEjbTestContext.getInitialContext(OpenEjbTestContext.java:162)
>        at  
> org 
> .apache 
> .openejb 
> .junit 
> .context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java:125)
>        at  
> org 
> .apache 
> .openejb 
> .junit 
> .context 
> .ContextWrapperStatement.evaluate(ContextWrapperStatement.java:44)
>        at  
> org 
> .apache 
> .openejb 
> .junit 
> .model.MultiStatementExecutor.evaluate(MultiStatementExecutor.java:45)
>        at  
> org 
> .junit 
> .runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java: 
> 73)
>        at  
> org 
> .junit 
> .runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java: 
> 46)
>        at  
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>        at org.junit.runners.ParentRunner.access 
> $000(ParentRunner.java:41)
>        at org.junit.runners.ParentRunner 
> $1.evaluate(ParentRunner.java:173)
>        at  
> org 
> .junit 
> .internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>        at  
> org 
> .junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java: 
> 31)
>        at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>        at  
> org.apache.openejb.junit.OpenEjbRunner.run(OpenEjbRunner.java:169)
>        at  
> org 
> .apache 
> .maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>        at  
> org 
> .apache 
> .maven 
> .surefire 
> .suite 
> .AbstractDirectoryTestSuite 
> .executeTestSet(AbstractDirectoryTestSuite.java:140)
>        at  
> org 
> .apache 
> .maven 
> .surefire 
> .suite 
> .AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java: 
> 127)
>        at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>        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:345)
>        at  
> org 
> .apache 
> .maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
> Caused by: org.apache.openejb.OpenEJBException: Error deploying
> 'InitializeKMSPlatform'.  Exception: class
> org.apache.openejb.OpenEJBException: Singleton startup failed:
> InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton failed
> to initialize: Singleton failed to initialize: Singleton startup
> failed: InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton
> failed to initialize: Singleton failed to initialize
>        at  
> org 
> .apache 
> .openejb 
> .assembler.classic.Assembler.createApplication(Assembler.java:601)
>        ... 41 more
> Caused by: org.apache.openejb.OpenEJBException: Singleton startup
> failed: InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton
> failed to initialize: Singleton failed to initialize
>        at  
> org 
> .apache 
> .openejb 
> .core.singleton.SingletonContainer.deploy(SingletonContainer.java:133)
>        at  
> org 
> .apache 
> .openejb 
> .assembler.classic.Assembler.createApplication(Assembler.java:598)
>        ... 41 more
> Caused by: org.apache.openejb.ApplicationException:
> javax.ejb.NoSuchEJBException: Singleton failed to initialize:
> Singleton failed to initialize
>        at  
> org 
> .apache 
> .openejb 
> .core 
> .singleton 
> .SingletonInstanceManager 
> .createInstance(SingletonInstanceManager.java:230)
>        at  
> org.apache.openejb.core.singleton.SingletonInstanceManager.access 
> $100(SingletonInstanceManager.java:60)
>        at org.apache.openejb.core.singleton.SingletonInstanceManager 
> $1.call(SingletonInstanceManager.java:86)
>        at org.apache.openejb.core.singleton.SingletonInstanceManager 
> $1.call(SingletonInstanceManager.java:84)
>        at java.util.concurrent.FutureTask 
> $Sync.innerRun(FutureTask.java:303)
>        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>        at  
> org 
> .apache 
> .openejb 
> .core 
> .singleton 
> .SingletonInstanceManager.getInstance(SingletonInstanceManager.java: 
> 96)
>        at  
> org 
> .apache 
> .openejb 
> .core.singleton.SingletonContainer.deploy(SingletonContainer.java:128)
>        ... 42 more
> Caused by: javax.ejb.NoSuchEJBException: Singleton failed to  
> initialize
>        ... 50 more
> Caused by: javax.persistence.TransactionRequiredException
>        at  
> org 
> .apache 
> .openejb 
> .persistence 
> .JtaEntityManager.assertTransactionActive(JtaEntityManager.java:75)
>        at  
> org 
> .apache 
> .openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java: 
> 96)
>        at  
> net 
> .kunye 
> .platform 
> .init.InitializeKMSPlatform.initialize(InitializeKMSPlatform.java:63)
>        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.openejb.core.interceptor.ReflectionInvocationContext 
> $Invocation.invoke(ReflectionInvocationContext.java:158)
>        at  
> org.apache.openejb.core.interceptor.ReflectionInvocationContext 
> $LifecycleInvocation.invoke(ReflectionInvocationContext.java:189)
>        at  
> org 
> .apache 
> .openejb 
> .core 
> .interceptor 
> .ReflectionInvocationContext 
> .proceed(ReflectionInvocationContext.java:141)
>        at  
> org 
> .apache 
> .openejb 
> .core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
>        at  
> org 
> .apache 
> .openejb 
> .core 
> .singleton 
> .SingletonInstanceManager 
> .createInstance(SingletonInstanceManager.java:204)
>        ... 49 more
> INFO - Logging in
> INFO - Logging in
>
> Quintin Beukes
>


Re: Singletons don't have transactions?

Posted by Jean-Louis MONTEIRO <je...@atosorigin.com>.
Hi Quintin,

According to the specification, it's legal to access an entitymanager in a
@PostConstruct method.
Basically, a singleton can do everything a stateless can do.

It looks like a bug.
Will try to reproduce it and to dig into.

Jean-Louis


Q Beukes wrote:
> 
> Hey,
> 
> I have an odd problem. I created a singleton bean, gave it @Startup
> and want to initialize the database. Though, when I tried to use the
> entity manager in the @PostConstruct method, I get the errors listed
> at the below. This is even if I specified
> @TransactionAttribute(TransactionAttributeType.REQUIRED), which
> according to the spec means the transaction HAS to be started. So I
> would think this is a bug?
> 
> -------------------------------------------------------
>  T E S T S
> -------------------------------------------------------
> Running net.kunye.platform.init.InitializeKMSPlatformTest
> Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.026 sec
> Running net.kunye.test.TestBeanTest
> Apache OpenEJB 3.1.2-SNAPSHOT    build: 20091009-07:14
> http://openejb.apache.org/
> INFO - openejb.home = /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb
> INFO - openejb.base = /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb
> INFO - Configuring Service(id=Default Security Service,
> type=SecurityService, provider-id=Default Security Service)
> INFO - Configuring Service(id=Default Transaction Manager,
> type=TransactionManager, provider-id=Default Transaction Manager)
> INFO - Configuring Service(id=jdbc_kmsPool, type=Resource,
> provider-id=Default JDBC Database)
> INFO - Found EjbModule in classpath:
> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/classes
> INFO - Found EjbModule in classpath:
> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/test-classes
> INFO - Found ClientModule in classpath:
> /home/mavenrepo/org/hibernate/hibernate-core/3.3.2.GA/hibernate-core-3.3.2.GA.jar
> INFO - Found EjbModule in classpath:
> /home/mavenrepo/net/kunye/UnitTesting/1.0/UnitTesting-1.0.jar
> INFO - Found ClientModule in classpath:
> /home/mavenrepo/javassist/javassist/3.4.GA/javassist-3.4.GA.jar
> INFO - Beginning load:
> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/classes
> INFO - Beginning load:
> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/test-classes
> INFO - Beginning load:
> /home/mavenrepo/org/hibernate/hibernate-core/3.3.2.GA/hibernate-core-3.3.2.GA.jar
> INFO - Beginning load:
> /home/mavenrepo/net/kunye/UnitTesting/1.0/UnitTesting-1.0.jar
> INFO - Beginning load:
> /home/mavenrepo/javassist/javassist/3.4.GA/javassist-3.4.GA.jar
> INFO - Configuring enterprise application: classpath.ear
> INFO - Configuring Service(id=Default Singleton Container,
> type=Container, provider-id=Default Singleton Container)
> INFO - Auto-creating a container for bean SiteBean:
> Container(type=SINGLETON, id=Default Singleton Container)
> INFO - Configuring Service(id=Default Stateless Container,
> type=Container, provider-id=Default Stateless Container)
> INFO - Auto-creating a container for bean TestBean:
> Container(type=STATELESS, id=Default Stateless Container)
> INFO - Configuring PersistenceUnit(name=KMSPlatform-PU,
> provider=org.hibernate.ejb.HibernatePersistence)
> INFO - Auto-creating a Resource with id 'jdbc_kmsPoolNonJta' of type
> 'DataSource for 'KMSPlatform-PU'.
> INFO - Configuring Service(id=jdbc_kmsPoolNonJta, type=Resource,
> provider-id=jdbc_kmsPool)
> INFO - Adjusting PersistenceUnit KMSPlatform-PU <jta-data-source> to
> Resource ID 'jdbc_kmsPool' from 'jdbc/kmsPool'
> INFO - Adjusting PersistenceUnit KMSPlatform-PU <non-jta-data-source>
> to Resource ID 'jdbc_kmsPoolNonJta' from 'null'
> INFO - Enterprise application "classpath.ear" loaded.
> INFO - Assembling app: classpath.ear
> INFO - PersistenceUnit(name=KMSPlatform-PU,
> provider=org.hibernate.ejb.HibernatePersistence)
> INFO - Jndi(name=SiteBeanLocal) --> Ejb(deployment-id=SiteBean)
> INFO - Jndi(name=SiteBeanRemote) --> Ejb(deployment-id=SiteBean)
> INFO - Jndi(name=InitializeKMSPlatformLocal) -->
> Ejb(deployment-id=InitializeKMSPlatform)
> INFO - Jndi(name=SpringContextBeanLocal) -->
> Ejb(deployment-id=SpringContextBean)
> INFO - Jndi(name=TestBeanLocal) --> Ejb(deployment-id=TestBean)
> INFO - Jndi(name=TestBeanRemote) --> Ejb(deployment-id=TestBean)
> INFO - Jndi(name=UnauthenticatedUserBeanLocal) -->
> Ejb(deployment-id=UnauthenticatedUserBean)
> INFO - Jndi(name=StandardUserBeanLocal) -->
> Ejb(deployment-id=StandardUserBean)
> INFO - Jndi(name=AdminBeanLocal) --> Ejb(deployment-id=AdminBean)
> INFO - Jndi(name=LampRoomBeanLocal) --> Ejb(deployment-id=LampRoomBean)
> INFO - Jndi(name=VdsAdminBeanLocal) --> Ejb(deployment-id=VdsAdminBean)
> INFO - Jndi(name=PersonnelAdminBeanLocal) -->
> Ejb(deployment-id=PersonnelAdminBean)
> INFO - Jndi(name=LampRepairBeanLocal) -->
> Ejb(deployment-id=LampRepairBean)
> INFO - Jndi(name=ServerComponentsBeanLocal) -->
> Ejb(deployment-id=ServerComponentsBean)
> INFO - Created Ejb(deployment-id=UnauthenticatedUserBean,
> ejb-name=UnauthenticatedUserBean, container=Default Stateless
> Container)
> INFO - Created Ejb(deployment-id=PersonnelAdminBean,
> ejb-name=PersonnelAdminBean, container=Default Stateless Container)
> INFO - Created Ejb(deployment-id=VdsAdminBean, ejb-name=VdsAdminBean,
> container=Default Stateless Container)
> INFO - Created Ejb(deployment-id=LampRepairBean,
> ejb-name=LampRepairBean, container=Default Stateless Container)
> INFO - Created Ejb(deployment-id=StandardUserBean,
> ejb-name=StandardUserBean, container=Default Stateless Container)
> INFO - Created Ejb(deployment-id=LampRoomBean, ejb-name=LampRoomBean,
> container=Default Stateless Container)
> INFO - Created Ejb(deployment-id=ServerComponentsBean,
> ejb-name=ServerComponentsBean, container=Default Stateless Container)
> INFO - Created Ejb(deployment-id=AdminBean, ejb-name=AdminBean,
> container=Default Stateless Container)
> INFO - Created Ejb(deployment-id=TestBean, ejb-name=TestBean,
> container=Default Stateless Container)
> INFO - Created Ejb(deployment-id=SpringContextBean,
> ejb-name=SpringContextBean, container=Default Singleton Container)
> INFO - Created Ejb(deployment-id=SiteBean, ejb-name=SiteBean,
> container=Default Singleton Container)
> SINGLETON STARTUP
> Created NEW Spring App Context
> Persisting entity: net.kunye.security.auth.Role
> ERROR - The bean instance threw a system
> exception:javax.persistence.TransactionRequiredException
> javax.persistence.TransactionRequiredException
>         at
> org.apache.openejb.persistence.JtaEntityManager.assertTransactionActive(JtaEntityManager.java:75)
>         at
> org.apache.openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java:96)
>         at
> net.kunye.platform.init.InitializeKMSPlatform.initialize(InitializeKMSPlatform.java:63)
>         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.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
>         at
> org.apache.openejb.core.interceptor.ReflectionInvocationContext$LifecycleInvocation.invoke(ReflectionInvocationContext.java:189)
>         at
> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
>         at
> org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
>         at
> org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:204)
>         at
> org.apache.openejb.core.singleton.SingletonInstanceManager.access$100(SingletonInstanceManager.java:60)
>         at
> org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:86)
>         at
> org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:84)
>         at
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>         at
> org.apache.openejb.core.singleton.SingletonInstanceManager.getInstance(SingletonInstanceManager.java:96)
>         at
> org.apache.openejb.core.singleton.SingletonContainer.deploy(SingletonContainer.java:128)
>         at
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:598)
>         at
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:449)
>         at
> org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:367)
>         at
> org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:279)
>         at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:137)
>         at org.apache.openejb.OpenEJB.init(OpenEJB.java:286)
>         at org.apache.openejb.OpenEJB.init(OpenEJB.java:265)
>         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.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
>         at
> org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
>         at
> org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
>         at
> org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42)
>         at
> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
>         at
> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
>         at javax.naming.InitialContext.init(InitialContext.java:223)
>         at javax.naming.InitialContext.<init>(InitialContext.java:197)
>         at
> org.apache.openejb.junit.context.OpenEjbTestContext.getInitialContext(OpenEjbTestContext.java:162)
>         at
> org.apache.openejb.junit.context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java:125)
>         at
> org.apache.openejb.junit.context.ContextWrapperStatement.evaluate(ContextWrapperStatement.java:44)
>         at
> org.apache.openejb.junit.model.MultiStatementExecutor.evaluate(MultiStatementExecutor.java:45)
>         at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
>         at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
>         at
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
>         at
> org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
>         at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>         at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>         at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>         at
> org.apache.openejb.junit.OpenEjbRunner.run(OpenEjbRunner.java:169)
>         at
> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>         at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
>         at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
>         at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>         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:345)
>         at
> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
> INFO - Undeploying app: classpath.ear
> ERROR - Singleton shutdown failed: InitializeKMSPlatform
> java.lang.NullPointerException
>         at
> org.apache.openejb.core.singleton.SingletonInstanceManager.freeInstance(SingletonInstanceManager.java:311)
>         at
> org.apache.openejb.core.singleton.SingletonContainer.undeploy(SingletonContainer.java:146)
>         at
> org.apache.openejb.core.singleton.SingletonContainer.undeploy(SingletonContainer.java:139)
>         at
> org.apache.openejb.assembler.classic.Assembler.destroyApplication(Assembler.java:844)
>         at
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:662)
>         at
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:449)
>         at
> org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:367)
>         at
> org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:279)
>         at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:137)
>         at org.apache.openejb.OpenEJB.init(OpenEJB.java:286)
>         at org.apache.openejb.OpenEJB.init(OpenEJB.java:265)
>         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.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
>         at
> org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
>         at
> org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
>         at
> org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42)
>         at
> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
>         at
> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
>         at javax.naming.InitialContext.init(InitialContext.java:223)
>         at javax.naming.InitialContext.<init>(InitialContext.java:197)
>         at
> org.apache.openejb.junit.context.OpenEjbTestContext.getInitialContext(OpenEjbTestContext.java:162)
>         at
> org.apache.openejb.junit.context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java:125)
>         at
> org.apache.openejb.junit.context.ContextWrapperStatement.evaluate(ContextWrapperStatement.java:44)
>         at
> org.apache.openejb.junit.model.MultiStatementExecutor.evaluate(MultiStatementExecutor.java:45)
>         at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
>         at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
>         at
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
>         at
> org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
>         at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>         at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>         at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>         at
> org.apache.openejb.junit.OpenEjbRunner.run(OpenEjbRunner.java:169)
>         at
> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>         at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
>         at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
>         at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>         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:345)
>         at
> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
> ERROR - Application could not be deployed:  classpath.ear
> org.apache.openejb.OpenEJBException: Creating application failed:
> classpath.ear: Error deploying 'InitializeKMSPlatform'.  Exception:
> class org.apache.openejb.OpenEJBException: Singleton startup failed:
> InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton failed
> to initialize: Singleton failed to initialize: Singleton startup
> failed: InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton
> failed to initialize: Singleton failed to initialize
>         at
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:666)
>         at
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:449)
>         at
> org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:367)
>         at
> org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:279)
>         at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:137)
>         at org.apache.openejb.OpenEJB.init(OpenEJB.java:286)
>         at org.apache.openejb.OpenEJB.init(OpenEJB.java:265)
>         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.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
>         at
> org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
>         at
> org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
>         at
> org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42)
>         at
> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
>         at
> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
>         at javax.naming.InitialContext.init(InitialContext.java:223)
>         at javax.naming.InitialContext.<init>(InitialContext.java:197)
>         at
> org.apache.openejb.junit.context.OpenEjbTestContext.getInitialContext(OpenEjbTestContext.java:162)
>         at
> org.apache.openejb.junit.context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java:125)
>         at
> org.apache.openejb.junit.context.ContextWrapperStatement.evaluate(ContextWrapperStatement.java:44)
>         at
> org.apache.openejb.junit.model.MultiStatementExecutor.evaluate(MultiStatementExecutor.java:45)
>         at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
>         at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
>         at
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
>         at
> org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
>         at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>         at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>         at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>         at
> org.apache.openejb.junit.OpenEjbRunner.run(OpenEjbRunner.java:169)
>         at
> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>         at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
>         at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
>         at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>         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:345)
>         at
> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
> Caused by: org.apache.openejb.OpenEJBException: Error deploying
> 'InitializeKMSPlatform'.  Exception: class
> org.apache.openejb.OpenEJBException: Singleton startup failed:
> InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton failed
> to initialize: Singleton failed to initialize: Singleton startup
> failed: InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton
> failed to initialize: Singleton failed to initialize
>         at
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:601)
>         ... 41 more
> Caused by: org.apache.openejb.OpenEJBException: Singleton startup
> failed: InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton
> failed to initialize: Singleton failed to initialize
>         at
> org.apache.openejb.core.singleton.SingletonContainer.deploy(SingletonContainer.java:133)
>         at
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:598)
>         ... 41 more
> Caused by: org.apache.openejb.ApplicationException:
> javax.ejb.NoSuchEJBException: Singleton failed to initialize:
> Singleton failed to initialize
>         at
> org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:230)
>         at
> org.apache.openejb.core.singleton.SingletonInstanceManager.access$100(SingletonInstanceManager.java:60)
>         at
> org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:86)
>         at
> org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:84)
>         at
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>         at
> org.apache.openejb.core.singleton.SingletonInstanceManager.getInstance(SingletonInstanceManager.java:96)
>         at
> org.apache.openejb.core.singleton.SingletonContainer.deploy(SingletonContainer.java:128)
>         ... 42 more
> Caused by: javax.ejb.NoSuchEJBException: Singleton failed to initialize
>         ... 50 more
> Caused by: javax.persistence.TransactionRequiredException
>         at
> org.apache.openejb.persistence.JtaEntityManager.assertTransactionActive(JtaEntityManager.java:75)
>         at
> org.apache.openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java:96)
>         at
> net.kunye.platform.init.InitializeKMSPlatform.initialize(InitializeKMSPlatform.java:63)
>         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.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
>         at
> org.apache.openejb.core.interceptor.ReflectionInvocationContext$LifecycleInvocation.invoke(ReflectionInvocationContext.java:189)
>         at
> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
>         at
> org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
>         at
> org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:204)
>         ... 49 more
> INFO - Logging in
> INFO - Logging in
> 
> Quintin Beukes
> 
> 

-- 
View this message in context: http://www.nabble.com/Singletons-don%27t-have-transactions--tp25874366p25889173.html
Sent from the OpenEJB User mailing list archive at Nabble.com.