Singleton bean @PostConstruct method is called before stateless beans are 
initialized.
--------------------------------------------------------------------------------------

                 Key: OPENEJB-1304
                 URL: https://issues.apache.org/jira/browse/OPENEJB-1304
             Project: OpenEJB
          Issue Type: Bug
    Affects Versions: 3.2
         Environment: 2.6.32-22-generic linux, sun jdk 1.6.0_20-b02
            Reporter: Thiago Veronezi
             Fix For: 3.2


The applicationInitialization method below fails at the bean initialization. 
The openEjb server throws a

.
.
.
    [exec] Application could not be deployed:  
/home/boto/Desktop/galileo/ws_sync1/iroot/target/system/ejbs/iservice.jar
     [exec] org.apache.openejb.OpenEJBException: Creating application failed: 
/home/boto/Desktop/galileo/ws_sync1/iroot/target/system/ejbs/iservice.jar: 
Error deploying 'ApplicationImpl'.  Exception: class 
org.apache.openejb.OpenEJBException: Singleton startup failed: ApplicationImpl: 
javax.ejb.NoSuchEJBException: Singleton failed to initialize: Singleton failed 
to initialize: Singleton startup failed: ApplicationImpl: 
javax.ejb.NoSuchEJBException: Singleton failed to initialize: Singleton failed 
to initialize
     [exec]     at 
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:673)
     [exec]     at 
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:449)
     [exec]     at 
org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:367)
     [exec]     at 
org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:279)
     [exec]     at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:125)
     [exec]     at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:60)
     [exec]     at org.apache.openejb.OpenEJB.init(OpenEJB.java:271)
     [exec]     at org.apache.openejb.OpenEJB.init(OpenEJB.java:250)
     [exec]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [exec]     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     [exec]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [exec]     at java.lang.reflect.Method.invoke(Method.java:597)
     [exec]     at 
org.apache.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
     [exec]     at 
org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
     [exec]     at 
org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
     [exec]     at 
org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42)
     [exec]     at 
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
     [exec]     at 
javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
     [exec]     at javax.naming.InitialContext.init(InitialContext.java:223)
     [exec]     at javax.naming.InitialContext.<init>(InitialContext.java:197)
     [exec]     at iserver.iserver.server.ejb.EjbServer.start(EjbServer.java:68)
     [exec]     at 
iserver.iserver.server.ejb.EjbServerThread.run(EjbServerThread.java:45)

.
.
.

@Singleton
@Startup
@Local(IApplicationService.class)
public class ApplicationImpl implements IApplicationService {
        private static final Logger LOG = 
Logger.getLogger(ApplicationImpl.class);
        
        @EJB
        private IUserServiceLocal iusr;
        
        @Override
        @PostConstruct
        public void applicationInitialization() {
                if (LOG.isInfoEnabled()) {
                        LOG.info("Starting up the iserver EJB application...");
                }
                
                User root = iusr.findByAccount("root");
                if(root == null) {
                        if (LOG.isInfoEnabled()) {
                                LOG.info("This is the first execution! "
                                                + "Creating the default root 
user.");
                        }

                        root = iusr.create("root", "root user", "1234");
                }
        }

        @Override
        @PreDestroy
        public void applicationShutdown() {
                // do nothing
        }
}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to