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
>
>
>
>
>