Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Persistance des données Java Discussion :

Problème lors de la connexion à une base donnée (erreur d'ejb)


Sujet :

Persistance des données Java

  1. #1
    Nouveau Candidat au Club
    Problème lors de la connexion à une base donnée (erreur d'ejb)
    Bonjour,

    Actuellement je développe un petit projet de gestion d'équipements et lors de la connexion de mon client vers la base de données, j'ai une erreur.
    Pour info, ma base de données est sur Postgres lié à Glassfish (ça ping).
    Lors de l’exécution de mon client j'obtiens cette info :

    INFOS: Cannot find javadb client jar file, derby jdbc driver will not be available by default.
    puis l'erreur :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    javax.ejb.EJBException
            at com.sun.ejb.containers.EJBContainerTransactionManager.processSystemException(EJBContainerTransactionManager.java:752)
            at com.sun.ejb.containers.EJBContainerTransactionManager.completeNewTx(EJBContainerTransactionManager.java:702)
            at com.sun.ejb.containers.EJBContainerTransactionManager.postInvokeTx(EJBContainerTransactionManager.java:507)
            at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4566)
            at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2074)
            at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2044)
            at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:212)
            at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:79)
            at com.sun.proxy.$Proxy233.maintenanceEquip(Unknown Source)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.dispatchToMethod(ReflectiveTie.java:143)
            at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:173)
            at com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatchToServant(ServerRequestDispatcherImpl.java:528)
            at com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatch(ServerRequestDispatcherImpl.java:199)
            at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequestRequest(MessageMediatorImpl.java:1549)
            at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:1425)
            at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleInput(MessageMediatorImpl.java:930)
            at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:213)
            at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:694)
            at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.dispatch(MessageMediatorImpl.java:496)
            at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.doWork(MessageMediatorImpl.java:2222)
            at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:497)
            at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:540)
    Caused by: java.lang.IllegalStateException: Unable to retrieve EntityManagerFactory for unitName BiblioHugo
            at com.sun.enterprise.container.common.impl.EntityManagerWrapper.init(EntityManagerWrapper.java:138)
            at com.sun.enterprise.container.common.impl.EntityManagerWrapper._getDelegate(EntityManagerWrapper.java:171)
            at com.sun.enterprise.container.common.impl.EntityManagerWrapper.find(EntityManagerWrapper.java:341)
            at mypack.UtilisationEquipBean.maintenanceEquip(UtilisationEquipBean.java:21)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1081)
            at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1153)
            at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4786)
            at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:656)
            at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
            at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:608)
            at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:73)
            at org.jboss.weld.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:52)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)
            at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
            at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:608)
            at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:163)
            at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:140)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)
            at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
            at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369)
            at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4758)
            at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4746)
            at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:205)
            ... 19 more


    La question que je me pose est de savoir si c'est lié au code ou à une partie manquante d'installation de drivers ?

    Voici mon client :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    import mypack.*;
    import javax.naming.*;
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.IOException.*;
     
    public class Client {
    		public static void main(String [] args) throws NamingException{
    			try{
    				InitialContext initcont=new InitialContext();
    				UtilisationEquip utilisationequip= (UtilisationEquip)initcont.lookup("mypack.UtilisationEquip") ;
    				boolean menu=true;
    				int choice;
    				String nom,equipId,dateMaint,validdispo, message;
    				boolean dispo=false;
    				BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    				while(menu){
    					System.out.println("Menu : \n0: EXIT\n1: Creer un equipement\n2: Faire la maintenance\n3: Utiliser un équipement\n4: Fin d'utilisation");
    					choice=Integer.parseInt(reader.readLine().substring(0,1));
    					switch(choice){
    						case 0: menu=false;
    								break;
    						case 1: System.out.println("equipId:");
    								equipId=reader.readLine();
    								equipId=equipId.substring(0,3);
    								System.out.println("nom:");
    								nom=reader.readLine();
    								System.out.println("Date de maintenance:");
    								dateMaint=reader.readLine();
    								System.out.println("Dispo :");
    								validdispo=reader.readLine();
    								if(validdispo.equals("true") || validdispo.equals("1")){
    									dispo=true;
    								}
    								utilisationequip.nouveauEquip(equipId,nom,dateMaint,dispo);
    								System.out.println("Equipement : "+ nom +" ajouté");
    								dispo=false;
    								break;
    						case 2: System.out.println("equipId:");
    								equipId=reader.readLine();
    								equipId=equipId.substring(0,3);
    								System.out.println("Nouvelle date de maintenance:");
    								dateMaint=reader.readLine();
    								utilisationequip.maintenanceEquip(equipId,dateMaint);
    								System.out.println("\nEquipement valide jusqu'au  : "+dateMaint);
    								break;	
    						case 3: System.out.println("equipId:");
    								equipId=reader.readLine();
    								equipId=equipId.substring(0,3);
    								message =utilisationequip.reservationEquip(equipId);
    								System.out.println(message);
    								break;
     
    						/*case 4:	System.out.println("equipId:");
    								equipId=reader.readLine();
    								equipId=equipId.substring(0,3);
    								message =utilisationequip.rendreLivre(equipId);
    								System.out.println(message);	*/	
    					}
    				}
    			}catch(Exception e){
    			e.printStackTrace();
    			}
    		}
    }


    Et mon persistence.xml :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence xmlns="http://java.sun.com/xml/ns/persistence"
    			 xmlns<img src="images/smilies/icon_mad.gif" border="0" alt="" title=":x" class="inlineimg" />si="http://www.w3.org/2001/XMLSchema-instance"
    			 version="1.0" 
    			 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
    			http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
    		<persistence-unit name="BiblioHugo">
    			<jta-data-source>jdbc/biblio</jta-data-source>
    			<properties>
    			<property name ="javax.persistence.jdbc.driver"
    			value ="org.postgresql.Driver"/>
    			<property name ="javax.persistence.jdbc.url"
    			value="jdbc:postgresql://localhost:5432/biblio"/>
    			<property name="javax.persistence.jdbc.user" value="postgres"/>
    			<property name ="javax.persistence.jdbc.password" value ="admin"/>
    			</properties>
    		</persistence-unit>
    </persistence>


    Merci pour votre aide

  2. #2
    Membre chevronné
    salut,
    tu peux regarder ici .
    la solution s´y trouve.

    Eric