Bonjour,
J'ai une méthode dans l'objet distant CORBA qui retourne un objet de type org.omg.CORBA.Any, cette méthode peut retourner null dans un certain cas.
Seulement quand ce cas se présente, j'ai droit à une éxception de ma JVM, qui ressemble à ceci.
.
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 ATTENTION: "IOP00110201: (BAD_PARAM) Null parameter" org.omg.CORBA.BAD_PARAM: vmcid: SUN minor code: 201 completed: Maybe at com.sun.corba.se.impl.logging.ORBUtilSystemException.nullParam(ORBUtilSystemException.java:1099) at com.sun.corba.se.impl.logging.ORBUtilSystemException.nullParam(ORBUtilSystemException.java:1113) at com.sun.corba.se.impl.encoding.CDROutputStream_1_0.write_any(CDROutputStream_1_0.java:582) at com.sun.corba.se.impl.encoding.CDROutputStream.write_any(CDROutputStream.java:202) at MaHashPOA._invoke(MaHashPOA.java:55) at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:637) at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:189) at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1680) at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1540) at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:922) at com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:181) at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:694) at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.dispatch(SocketOrChannelConnectionImpl.java:451) at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1187) at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:417)
Savez vous comment on peut contourner ce problème ?
Mon idée était de créer un objet any avec orb.create_any() et de n'y insérer aucune valeur, puis de le retourner. A la réception chez le client, celui ci pourrait tester si Any ne contient rien, et dans le cas échéant en déduira qu'il est null.
Seulement dans ma classe d'implémentation, je n'ai pas accès à l'ORB, et je ne peux donc invoquer ses méthodes.
Suis je entrain de raconter n'importe quoi ? Y'a t-il une façon simple de procéder ?
Merci, et bonne soirée![]()
Partager