seeif
Messages postés22Date d'inscriptionjeudi 9 juillet 2009StatutMembreDernière intervention19 août 2009
-
16 juil. 2009 à 04:01
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013
-
17 juil. 2009 à 07:50
je suis entrain de developper une application jee (ejb3) pour inserer des données dans une base de donées
pour se faire j'ai utilisé my sql comme db et toplink comme une ORM
lors de l'execution de la classe VolFacade responsable des actions de persistence de l'entityBean Vol
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
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 [voldb].
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 ejb.VolFacade.getEntityManager(VolFacade.java:35)
at ejb.VolFacade.create(VolFacade.java:47)
at ejb.VolFacade.main(VolFacade.java:62)
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 [voldb].
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)
... 7 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:385)
at javax.naming.InitialContext.lookup(InitialContext.java:396)
at oracle.toplink.essentials.jndi.JNDIConnector.connect(JNDIConnector.java:129)
... 11 more
je vois pourquoi il ne detecte pas la base de données dbvol malgré que je l'ai configuré lors de la creation de l'unité de persistence
voici mon fichier persistence.xml:
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 16 juil. 2009 à 08:00
Salut,
Est-ce que tu as crée une datasource au niveau de ton serveur d'application J2EE qui s'appelle voldb ? Car apparement, l'erreur vient de là.
Il faut toujours lire les messages d'erreurs affichés et les comprendre, sinon forcément, tu perds du temps...
Cannot acquire data source [voldb] ______________________________________
DarK Sidious
seeif
Messages postés22Date d'inscriptionjeudi 9 juillet 2009StatutMembreDernière intervention19 août 2009 16 juil. 2009 à 15:57
j'ai su l'erreur d'ou elle vient mais j'ai pas pu la corriger.
excusez moi je suis nouveau dans le domaine de jee.
Concernant la creation d'une data source au niveau de serveur d'application est ce que c'est depuis la page web d'administration ou depuis l'ide
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 16 juil. 2009 à 16:04
Salut,
Tu utilise quoi comme serveur d'application ?
Normalement ca se fait à partir de l'interface d'administration, mais pour certains (JBoss par exemple), ca consiste à créer un fichier xml et le mettre dans le dossier de configuration du serveur.
______________________________________
DarK Sidious
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 16 juil. 2009 à 16:28
Salut,
Alors avec glass fish ca se passe bien dans l'interface d'administration, et de mémoire, il me semble qu'il est relativement simple de créer un datasource avec glassfish (de toute façon tout est simple (trop ?) avec glassfish tellement il se contente du minimum de connaissance).
______________________________________
DarK Sidious
seeif
Messages postés22Date d'inscriptionjeudi 9 juillet 2009StatutMembreDernière intervention19 août 2009 17 juil. 2009 à 00:02
j'ai pas trouvé une autre maniere pour specifier ma data source
je l'ai specifié dans le fichier de persistence.xml et au niveau de serveur d'application(depuis la console admin) mais la meme erreur persiste
est ce qu'il ya une autre configuration que je le faire pour que la data source soit detectée
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 17 juil. 2009 à 07:50
Salut,
Non non, c'est tout ce qu'il y a à paramètrer pour une data source : au niveau serveur tu lui indique quelle base de données utiliser (avec quel connector : ne pas oublier de mettre le connector dans les bibliothèques de ton serveur d'application !), et au niveau de ton application web, tu créer le fichier persistence.xml (qui doit se trouver à la racine de ton classpath) indiquant quel datasource du serveur d'application utiliser, et quel nom le mappe avec JNDI.
Vérifie bien que le nom de ton datasource que tu viens de créer correspond exactement au nom que tu as entré dans ton fichier persistence.xml. N'oublie pas de redémarrer ton serveur d'application, d'enlever l'ancienne version de ton application web, et de la redéployer à la place.
______________________________________
DarK Sidious