ejb@glassfish.java.net

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

From: sankar <sankar_at_infomindz.com>
Date: Tue, 25 Nov 2008 13:58:16 +0800

Marina Vatkina wrote:
> 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
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ejb-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: ejb-help_at_glassfish.dev.java.net
>
>
In your Test Persistence Unit have this attribute <jta-data-source>
Just delete it and run......