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:xsi="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