Bonjour tout le monde!
J'ai un soucis pour mon applic J2EE:
Tout d'abord quelques mots sur son architecture:
J'ai des EJB3 Entities, qui ont chacun leur "Session bean Facade"(et chaque facade a une interface @Remote).
J'accède a ces facades par 2 sites web et une application cliente.
Mon problème est qu'actuellement, lorsque que j'ajoute un objet, il va correctement jusqu'à la facade, et lorsque je fais un em.persist dans mon "Session bean Facade", ca crash et j'obtient une chouette erreur.
L'objet que j'ajoute est un "Deal" qui contient 2 clefs étrangères vers Service(qui est l'objet qui n'est pas trouvé)."IOP00810257: (MARSHAL) Could not load class datamodel.Service"
org.omg.CORBA.MARSHAL: vmcid: SUN minor code: 257 completed: Maybe
at com.sun.corba.ee.impl.logging.ORBUtilSystemException.couldNotFindClass(ORBUtilSystemException.java:9684)
at com.sun.corba.ee.impl.logging.ORBUtilSystemException.couldNotFindClass(ORBUtilSystemException.java:9699)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1042)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:896)
at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:466)
at com.sun.corba.ee.impl.corba.TCUtility.unmarshalIn(TCUtility.java:296)
at com.sun.corba.ee.impl.corba.AnyImpl.read_value(AnyImpl.java:610)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_any(CDRInputStream_1_0.java:748)
at com.sun.corba.ee.impl.encoding.CDRInputStream.read_any(CDRInputStream.java:406)
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.readAny(Util.java:504)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.read_Array(ValueHandlerImpl.java:690)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:359)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:328)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:966)
[....]
Un autre truc bizarre, est que dans mon code, je n'ai aucun soucis pour lire des données(actuellement je récupère même tous les services pour les afficher dans un arbre, je controle qu'un user existe, ...), donc je me dis que l'application connait bien les EJB.
Voici un peu de code "intéressant"
La partie de code ou je créée mon "deal":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Deal d = new Deal(); Service offserv = servfac.find(BRIDGE_LIST.get(idoffer)); d.setIdOfferedService(offserv); Service reqserv = servfac.find(BRIDGE_LIST.get(idrequest)); d.setIdRequestedService(reqserv); d.setIdUser(usr); d.setInsertionDate(new Date(System.currentTimeMillis())); d.setStatus(Deal.STATUS_FREE); d.setDescription(tokens[2]); dealfac.create(d);
Mon code de dealfac.create:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public void create(Deal deal) { em.persist(deal); }
J'ai testé de tout enlever du serveur, tout recompiler, et tout redéployer, rien n'y fait. J'utilise Glassfish+netbeans+mysql. Mon implémentation JPA est Toplink.
S'il faut d'autre code, dites seulement.
J'ai trouvé ce cas très similaire:
http://www.developpez.net/forums/d54...shalexception/
Mais je peux pas trop tout mettre dans le même EAR.
Merci beaucoup
Partager