ejb@glassfish.java.net

Re: Error: [TOPLINK-7060] - Exception Description: Cannot acquire data source

From: Marina Vatkina <Marina.Vatkina_at_Sun.COM>
Date: Mon, 24 Nov 2008 18:34:54 -0800

Unless you deploy your application into a container that provides JNDI services,
you need to specify the connection properties via a JPA-provider specific
name-value pairs.

Regards,
-marina

Luiz Gustavo Amaral de Barros wrote:
> Hi..
>
> Please help me to solve the error below.
> I have this class:
>
> public class TesteClass {
> public static EntityManagerFactory emf =
> Persistence.createEntityManagerFactory("ReservaPassagensEJBPU2");
>
> public void persist(Object object) {
> try {
> EntityManager em = null;
>
> em = emf.createEntityManager();
> em.getTransaction().begin();
>
> em.persist(object);
>
> em.getTransaction().commit();
>
> } catch (Exception e) {
>
> java.util.logging.Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE,
> "exception caught", e);
> throw new RuntimeException(e);
> }
> }
> }
>
> In this line,
>
> em = emf.createEntityManager();
>
> while running appear this error:
>
> 22/11/2008 11:23:13 br.com.reserva.teste.testeclass persist
> SEVERE: exception caught
> javax.persistence.PersistenceException: Exception [TOPLINK-7060] (Oracle
> TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))):
> oracle.toplink.essentials.exceptions.ValidationException
> Exception Description: Cannot acquire data source [SistResevaBanco].
> Internal Exception: javax.naming.NoInitialContextException: Need to
> specify class name in environment or system property, or as an applet
> parameter, or in an application resource file: java.naming.factory.initial
> at
> oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:239)
> at
> oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:93)
> at
> oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:126)
> at
> oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:120)
> at
> oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:91)
> at br.com.reserva.teste.testeclass.persist(testeclass.java:24)
> at br.com.reserva.teste.testaEJB.main(testaEJB.java:36)
> Caused by: Exception [TOPLINK-7060] (Oracle TopLink Essentials - 2.0.1
> (Build b09d-fcs (12/06/2007))):
> oracle.toplink.essentials.exceptions.ValidationException
> Exception Description: Cannot acquire data source [SistResevaBanco].
> Internal Exception: javax.naming.NoInitialContextException: Need to
> specify class name in environment or system property, or as an applet
> parameter, or in an application resource file: java.naming.factory.initial
> at
> oracle.toplink.essentials.exceptions.ValidationException.cannotAcquireDataSource(ValidationException.java:373)
> at
> oracle.toplink.essentials.jndi.JNDIConnector.connect(JNDIConnector.java:135)
> at
> oracle.toplink.essentials.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:184)
> at
> oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:582)
> at
> oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:280)
> at
> oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:229)
> ... 6 more
> Caused by: javax.naming.NoInitialContextException: Need to specify class
> name in environment or system property, or as an applet parameter, or in
> an application resource file: java.naming.factory.initial
> at
> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
> at
> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
> at
> javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
> at javax.naming.InitialContext.lookup(InitialContext.java:392)
> at
> oracle.toplink.essentials.jndi.JNDIConnector.connect(JNDIConnector.java:127)
> ... 10 more
> java.lang.RuntimeException: javax.persistence.PersistenceException:
> Exception [TOPLINK-7060] (Oracle TopLink Essentials - 2.0.1 (Build
> b09d-fcs (12/06/2007))):
> oracle.toplink.essentials.exceptions.ValidationException
> Exception Description: Cannot acquire data source [SistResevaBanco].
> Internal Exception: javax.naming.NoInitialContextException: Need to
> specify class name in environment or system property, or as an applet
> parameter, or in an application resource file: java.naming.factory.initial
> at br.com.reserva.teste.testeclass.persist(testeclass.java:33)
> at br.com.reserva.teste.testaEJB.main(testaEJB.java:36)
> Caused by: javax.persistence.PersistenceException: Exception
> [TOPLINK-7060] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs
> (12/06/2007))): oracle.toplink.essentials.exceptions.ValidationException
> Exception Description: Cannot acquire data source [SistResevaBanco].
> Internal Exception: javax.naming.NoInitialContextException: Need to
> specify class name in environment or system property, or as an applet
> parameter, or in an application resource file: java.naming.factory.initial
> at
> oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:239)
> at
> oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:93)
> at
> oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:126)
> at
> oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:120)
> at
> oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:91)
> at br.com.reserva.teste.testeclass.persist(testeclass.java:24)
> ... 1 more
> Caused by: Exception [TOPLINK-7060] (Oracle TopLink Essentials - 2.0.1
> (Build b09d-fcs (12/06/2007))):
> oracle.toplink.essentials.exceptions.ValidationException
> Exception Description: Cannot acquire data source [SistResevaBanco].
> Internal Exception: javax.naming.NoInitialContextException: Need to
> specify class name in environment or system property, or as an applet
> parameter, or in an application resource file: java.naming.factory.initial
> at
> oracle.toplink.essentials.exceptions.ValidationException.cannotAcquireDataSource(ValidationException.java:373)
> at
> oracle.toplink.essentials.jndi.JNDIConnector.connect(JNDIConnector.java:135)
> at
> oracle.toplink.essentials.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:184)
> at
> oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:582)
> at
> oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:280)
> at
> oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:229)
> ... 6 more
> Caused by: javax.naming.NoInitialContextException: Need to specify class
> name in environment or system property, or as an applet parameter, or in
> an application resource file: java.naming.factory.initial
> at
> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
> at
> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
> at
> javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
> at javax.naming.InitialContext.lookup(InitialContext.java:392)
> at
> oracle.toplink.essentials.jndi.JNDIConnector.connect(JNDIConnector.java:127)
> ... 10 more
> The sources goes attached..
>
>
> ------------------------------------------------------------------------
> Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10
> <http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/>
> - Celebridades
> <http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/celebridades/>
> - Música
> <http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/m%C3%BAsica/>
> - Esportes
> <http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/esportes/>
>
>
>
> ------------------------------------------------------------------------
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ejb-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: ejb-help_at_glassfish.dev.java.net