Bonjour tout le monde,
Voilà 4 jours que je ne trouve pas la solution d'un problème. Si vous pouviez m'aider, ça serait avec grand plaisir.
Voici ma plateforme
Éclipse Ganymede
Glassfish (Sun Java System Application Server 9.1_01 (build b09d-fcs))
MySQL 5.0
Je pense que vous montrer le code épurer vaut mieux de de longs discours (j'utilise EJB3) à savoir que j'ai suivi tout sort de tuto sur le net, mais rien n'y fait.
Voici ma classe "Entity"
Voici mon "Remote"
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 package edu.jyc.module.entities; import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.Id; @Entity public class Biens implements Serializable { @Id private int id; private double montant; private String description; private String ville; private static final long serialVersionUID = 1L; public Biens() { super(); } public int getId() { return this.id; } public void setId(int id) { this.id = id; } public String getVille() { return this.ville; } public void setVille(String ville) { this.ville = ville; } }
Et voici mon "Bean"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 package edu.jyc.module.entities; import javax.ejb.Remote; @Remote public interface IBienServiceRemote { public abstract void creerTest(); }
Et enfin voici mon fichier de configuration persistence.xml se trouvant dans META-INF
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 package edu.jyc.module.entities; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @Stateless(name = "Bien", mappedName = "ejb/Bien") public class BienService implements IBienServiceRemote { @PersistenceContext private EntityManager em; @Override public void creerTest() { Biens bien = new Biens(); bien.setVille("Rouen"); this.em.persist(bien); } }
Lorsque je déploie mon bean tout ce passe bien. aucun soucie pas d'erreur ni de warning. La vie est belle (quoi que j'ai bataillé pour le déployé au début)
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 version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> <persistence-unit name="EJBBien" transaction-type="JTA"> <provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider> <jta-data-source>jdbc/sample</jta-data-source> <mapping-file>META-INF/orm.xml</mapping-file> <class>edu.jyc.module.entities.Biens</class> <properties> <property name="toplink.ddl-generation" value="create-tables"></property> </properties> </persistence-unit> </persistence>
maintenant du coté client j'ai ceci
et quand j'exécute le client, voici ce que j'ai à la console
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 package edu.jyc.module.entities; import javax.naming.InitialContext; public class Main { public static void main(String[] args){ try{ InitialContext ctx = new InitialContext(); IBienServiceRemote remote = (IBienServiceRemote) ctx.lookup("ejb/Bien"); remote.creerTest(); System.out.println("fin"); } catch(Exception e){ e.printStackTrace(); } } }
Donc à partir de là je me suis demandé si ce n'était pas mon pool sur glassfish qui était mal configuré. Donc je vous ai mis en copie-écran mes config (a savoir que dans la section paramètre, j'ai rajouter user et password en propriété et j'ai changé l'URL pour qu'elle pointe sur ma base mySql). De plus, en faisant un ping, ça marche.
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 javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: java.rmi.RemoteException: Transaction aborted; nested exception is: javax.transaction.RollbackException: Transaction marked for rollback.; nested exception is: javax.transaction.RollbackException: Transaction marked for rollback. java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: java.rmi.RemoteException: Transaction aborted; nested exception is: javax.transaction.RollbackException: Transaction marked for rollback.; nested exception is: javax.transaction.RollbackException: Transaction marked for rollback. at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:243) at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:205) at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152) at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225) at edu.jyc.module.entities.__IBienServiceRemote_Remote_DynamicStub.getString(edu/jyc/module/entities/__IBienServiceRemote_Remote_DynamicStub.java) at edu.jyc.module.entities._IBienServiceRemote_Wrapper.getString(edu/jyc/module/entities/_IBienServiceRemote_Wrapper.java) at edu.jyc.module.entities.Main.<init>(Main.java:20) at edu.jyc.module.entities.Main.main(Main.java:8) Caused by: java.rmi.RemoteException: Transaction aborted; nested exception is: javax.transaction.RollbackException: Transaction marked for rollback.; nested exception is: javax.transaction.RollbackException: Transaction marked for rollback. at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:251) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316) at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210) at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117) at $Proxy29.getString(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154) at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687) at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227) at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846) at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706) at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088) at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223) at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806) at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563) at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567) at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555) Caused by: javax.transaction.RollbackException: Transaction marked for rollback. at com.sun.enterprise.distributedtx.J2EETransaction.commit(J2EETransaction.java:440) at com.sun.enterprise.distributedtx.J2EETransactionManagerOpt.commit(J2EETransactionManagerOpt.java:371) at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:3792) at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3571) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354) ... 19 more javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: java.rmi.RemoteException: Transaction aborted; nested exception is: javax.transaction.RollbackException: Transaction marked for rollback.; nested exception is: javax.transaction.RollbackException: Transaction marked for rollback. at edu.jyc.module.entities._IBienServiceRemote_Wrapper.getString(edu/jyc/module/entities/_IBienServiceRemote_Wrapper.java) at edu.jyc.module.entities.Main.<init>(Main.java:20) at edu.jyc.module.entities.Main.main(Main.java:8)
Ma question est simple, savez-vous pourquoi j'ai cette erreur. J'ai passé des heures sur le net, mais tj pas de réponse.
Ce qui est le plus curieux, c'est que quand je déploie mon bean, il me cré bien ma table "Biens", donc la connection c'est bien passé, alors pourquoi quand j'exécute le client, ça ne marche plus.
Please, aidez-moi s.v.p.![]()
Partager