Re: EJBException et RMI
jerome moliere <[email protected]> Thu, 3 Nov 2011 16:10:16 +0100
| Newsgroups | gmane.comp.java.french.general |
|---|---|
| Message-ID | <CAEGYFEKrCj=XR-gKHvQMByV8a+5CbDfAO9Ljwyb2Brc_hyW1FQ@mail.gmail.com> |
et en encore plus bref arretez de bricoler ou demander gentiment =C3=A0 Alexis si c'est normal que le container client soit incompatible avec le container serveur si jamais t'utilises la m=C3=AAme version et les jars de la m=C3=AAme distrib ... t'aurais pas une filouterie Maven qui rentrerait en lice ? du genre je ne trouve pas la version demand=C3=A9e et je te colle la version trunk ou un truc du genre... J.MOLIERE - Mentor/J auteur Eyrolles blog: http://romjethoughts.blogspot.com 2011/11/3 R=C3=A9mi Forax <[email protected]>: > On 11/03/2011 02:52 PM, Nicolas Delsaux wrote: >> >> Salut, >> depuis ce matin, je me chamaille avec un test unitaire Glassfish >> client qui m'affiche des erreurs RMI/IIOP/CORBA compl=C3=A8tement dingue= s. >> Apr=C3=A8s moult ivnestigations, j'en suis venu =C3=A0 la conclusion qu'= une >> exception arrive sur le serveur, et que cette exception ne passe pas >> dans les tuyaux de RMI. >> Maintenant, comment je peux corriger ? >> Bon, je vais quand m=C3=AAme vous donner plus de d=C3=A9tails. >> Depuis un client Glassfish, je r=C3=A9cup=C3=A8re l'interface distante d= 'un EJB >> qui stocke des donn=C3=A9es dans une base Neo4J en utilisant Empire-RDF >> (https://github.com/mhgrove/Empire). Pas forc=C3=A9ment conventionnel, m= ais >> sacr=C3=A9ment fonctionnel. >> Sauf que, dans certains cas, je fais des b=C3=AAtises (genre cr=C3=A9er = un objet >> qui existe d=C3=A9ja en base). >> Dans ce cas-l=C3=A0, c=C3=B4t=C3=A9 serveur, je vois =C3=A7a : >> >> >> [#|2011-11-03T14:28:33.463+0100|WARNING|glassfish3.1.1|javax.enterprise.= system.container.ejb.com.sun.ejb.containers|_ThreadID=3D223;_ThreadName=3DT= hread-2;|A >> system exception occurred during an invocation on EJB TemplateEJB >> method public java.lang.Object >> AbstractCrudService.create(java.lang.Object) >> javax.ejb.EJBException >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.containers.BaseContainer.processSystemException(BaseContaine= r.java:5193) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:50= 91) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:487= 9) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2039) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1990) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvoca= tionHandler.java:213) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObje= ctInvocationHandlerDelegate.java:79) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at $Proxy531.create(Unknown Source) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at sun.reflect.GeneratedMethodAccessor190.inv= oke(Unknown Source) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor= Impl.java:43) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at java.lang.reflect.Method.invoke(Method.jav= a:601) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.dispatchToMethod(Re= flectiveTie.java:144) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveT= ie.java:174) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch= ToServant(CorbaServerRequestDispatcherImpl.java:528) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch= (CorbaServerRequestDispatcherImpl.java:199) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestReq= uest(CorbaMessageMediatorImpl.java:1624) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(Co= rbaMessageMediatorImpl.java:1486) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(Corb= aMessageMediatorImpl.java:990) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callbac= k(RequestMessage_1_2.java:214) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(Co= rbaMessageMediatorImpl.java:742) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMe= ssageMediatorImpl.java:539) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMess= ageMediatorImpl.java:2324) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.per= formWork(ThreadPoolImpl.java:497) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run= (ThreadPoolImpl.java:540) >> Caused by: javax.persistence.EntityExistsException: >> java.lang.IllegalArgumentException: Entity already exists: Template >> =C2=A0 =C2=A0 =C2=A0 =C2=A0id=3DRemoteTemplateJPATest#a template with an= empty target >> =C2=A0 =C2=A0 =C2=A0 =C2=A0name=3Da template with an empty target >> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at com.clarkparsia.empire.impl.EntityManagerI= mpl.persist(Unknown >> Source) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.enterprise.container.common.impl.EntityManagerWrapper.persist(En= tityManagerWrapper.java:269) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at AbstractCrudService.create(AbstractCrudSer= vice.java:70) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at AbstractCrudService.create(AbstractCrudSer= vice.java:22) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at sun.reflect.GeneratedMethodAccessor187.inv= oke(Unknown Source) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor= Impl.java:43) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at java.lang.reflect.Method.invoke(Method.jav= a:601) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBS= ecurityManager.java:1052) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecu= rityManager.java:1124) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java= :5366) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:619) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(Int= erceptorManager.java:800) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at com.sun.ejb.EjbInvocation.proceed(EjbInvoc= ation.java:571) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.jboss.weld.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterc= eptor.java:57) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at sun.reflect.GeneratedMethodAccessor163.inv= oke(Unknown Source) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor= Impl.java:43) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at java.lang.reflect.Method.invoke(Method.jav= a:601) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(In= terceptorManager.java:861) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(Int= erceptorManager.java:800) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at com.sun.ejb.EjbInvocation.proceed(EjbInvoc= ation.java:571) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround(Syst= emInterceptorProxy.java:162) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(= SystemInterceptorProxy.java:144) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at sun.reflect.GeneratedMethodAccessor162.inv= oke(Unknown Source) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor= Impl.java:43) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at java.lang.reflect.Method.invoke(Method.jav= a:601) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(In= terceptorManager.java:861) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(Int= erceptorManager.java:800) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.containers.interceptors.InterceptorManager.intercept(Interce= ptorManager.java:370) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5338= ) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5326) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvoca= tionHandler.java:206) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0... 18 more >> Caused by: java.lang.IllegalArgumentException: Entity already exists: >> Template >> =C2=A0 =C2=A0 =C2=A0 =C2=A0id=3DRemoteTemplateJPATest#a template with an= empty target >> =C2=A0 =C2=A0 =C2=A0 =C2=A0name=3Da template with an empty target >> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.clarkparsia.empire.impl.EntityManagerImpl.assertNotContains(Unknown >> Source) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0... 49 more >> |#] >> >> >> Le message est assez clair : "Entity already exists". >> Par contre, c=C3=B4t=C3=A9 client, je re=C3=A7ois une exception tout sau= f limpide : >> >> Avertissement: IOP00810011: Exception from readValue on ValueHandler >> in CDRInputStream >> org.omg.CORBA.MARSHAL: Avertissement: IOP00810011: Exception from >> readValue on ValueHandler in CDRInputStream =C2=A0vmcid: OMG =C2=A0minor= code: >> 11 completed: Maybe >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at sun.reflect.NativeConstructorAccessorImpl.= newInstance0(Native >> Method) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorA= ccessorImpl.java:57) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingCons= tructorAccessorImpl.java:45) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at java.lang.reflect.Constructor.newInstance(= Constructor.java:525) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.spi.orbutil.logex.corba.CorbaExtension.makeException(Co= rbaExtension.java:248) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.spi.orbutil.logex.corba.CorbaExtension.makeException(Co= rbaExtension.java:95) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator.handleFullLogging(Wr= apperGenerator.java:387) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator.access$400(WrapperGe= nerator.java:107) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator$2.invoke(WrapperGene= rator.java:511) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.spi.orbutil.proxy.CompositeInvocationHandlerImpl.invoke= (CompositeInvocationHandlerImpl.java:99) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at $Proxy54.valuehandlerReadException(Unknown= Source) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(C= DRInputStream_1_0.java:1022) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStr= eam_1_0.java:1123) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.encoding.CDRInputObject.read_value(CDRInputObject.= java:531) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStrea= m.java:2162) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStrea= m.java:2404) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.io.IIOPInputStream.defaultReadObjectDelegate(IIOPI= nputStream.java:596) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.io.InputStreamHook.defaultReadObject(InputStreamHo= ok.java:233) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at java.lang.Throwable.readObject(Throwable.j= ava:913) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at sun.reflect.NativeMethodAccessorImpl.invok= e0(Native Method) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav= a:57) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor= Impl.java:43) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at java.lang.reflect.Method.invoke(Method.jav= a:601) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.io.IIOPInputStream.invokeObjectReader(IIOPInputStr= eam.java:1832) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.jav= a:1214) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStrea= m.java:425) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandler= Impl.java:308) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.jav= a:274) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(C= DRInputStream_1_0.java:1015) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStr= eam_1_0.java:1123) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.encoding.CDRInputObject.read_value(CDRInputObject.= java:531) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.presentation.rmi.ExceptionHandlerImpl$ExceptionRWR= MIImpl.read(ExceptionHandlerImpl.java:180) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.presentation.rmi.ExceptionHandlerImpl.readExceptio= n(ExceptionHandlerImpl.java:290) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl.readE= xception(DynamicMethodMarshallerImpl.java:502) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.private= Invoke(StubInvocationHandlerImpl.java:205) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(= StubInvocationHandlerImpl.java:152) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.presentation.rmi.codegen.CodegenStubBase.invoke(Co= degenStubBase.java:227) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> __TemplateEJBInterface_Remote_DynamicStub.create(__TemplateEJBInterface_= Remote_DynamicStub.java) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> _TemplateEJBInterface_Wrapper.create(_TemplateEJBInterface_Wrapper.java) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> RemoteTemplateJPATest.aTemplateWithASimpleTargetShouldTotallyWork(Remote= TemplateJPATest.java:97) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at sun.reflect.NativeMethodAccessorImpl.invok= e0(Native Method) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav= a:57) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor= Impl.java:43) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at java.lang.reflect.Method.invoke(Method.jav= a:601) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMet= hod.java:44) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallab= le.java:15) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMetho= d.java:41) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod= .java:20) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.jav= a:28) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner= .java:76) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner= .java:50) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.junit.runners.ParentRunner$3.run(Paren= tRunner.java:193) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.junit.runners.ParentRunner$1.schedule(= ParentRunner.java:52) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.junit.runners.ParentRunner.access$000(= ParentRunner.java:42) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.junit.runners.ParentRunner$2.evaluate(= ParentRunner.java:184) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.jav= a:28) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.junit.runners.ParentRunner.run(ParentR= unner.java:236) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4Tes= tReference.java:50) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.ja= va:38) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTe= stRunner.java:467) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTe= stRunner.java:683) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRun= ner.java:390) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRu= nner.java:197) >> Caused by: java.io.IOException: Mismatched serialization UIDs : Source >> (Rep. IDRMI:javax.ejb.EJBException:958C33FAE8798D83:E573C8C3FC5EB5E2) >> =3D E573C8C3FC5EB5E2 whereas Target (Rep. ID >> RMI:javax.ejb.EJBException:958C33FAE8798D83:0B0EB2FF36CB22F6) =3D >> 0B0EB2FF36CB22F6 >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.util.RepositoryId.useFullValueDescription(Reposito= ryId.java:679) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.util.RepositoryId.useFullValueDescription(Reposito= ryId.java:639) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.io.ValueHandlerImpl.useFullValueDescription(ValueH= andlerImpl.java:360) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStrea= m.java:422) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandler= Impl.java:308) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.jav= a:274) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(C= DRInputStream_1_0.java:1015) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0... 52 more >> >> D'apr=C3=A8s ce que je comprend du bazar, =C3=A7a devrait vouloir dire q= u'un des >> =C3=A9l=C3=A9ments renvoy=C3=A9s n'est pas s=C3=A9rialisable. >> Ca n'est pas le cas de mon objet, que j'envoie d=C3=A9ja =C3=A0 travers = RMI (et >> qui est donc s=C3=A9rialis=C3=A9). >> Ca n'est - =C3=A0 priori - pas le cas des exceptions, piuisque Throwable >> impl=C3=A9mente Serializable. >> Alors que reste-t-il de non s=C3=A9rialisable ? >> Au cas o=C3=B9 vous poseriez la question, le client s'ex=C3=A9cute sur u= n JDK >> 1.7.0, comme Glassfish d'ailleurs (v=C3=A9rifi=C3=A9 avec JVisualVM). Il= ne >> s'agit donc pas du classique probl=C3=A8me de version diff=C3=A9rente. >> > > Le probl=C3=A8me est pas que c'est pas Serializable mais que ton EjbExcep= tion =C3=A0 > pas > le m=C3=AAme serialUID entre ta version server et ta version client. > > Bref, il faut que ton EjbException soit le m=C3=AAme sur ton server et to= n > client. > > Salut, > R=C3=A9mi > > > > >