Récemment, j'ai rencontré des problèmes lors de la communication CORBA d'une très ancienne application que je dois maintenir. Partie client et serveur communiquant via CORBA. Sur un appel de fonction particulière du client sur le serveur je reçois erreur folowing:org.omg.CORBA: MARSHAL & org.omg.CORBA.BAD_PARAM erreur
Not successful call - original stacktrace
java.lang.Exception
at de.tc.app.lamo.bss.util.dialog.AbstractCallProxy.<init>(AbstractCallProxy.java:135)
at de.tc.app.lamo.bss.util.dialog.CallProxy.<init>(CallProxy.java:68)
at de.tc.app.lamo.bss.util.dialog.BasisCtl.initiateServerCall(BasisCtl.java:186)
at de.tc.app.lamo.bss.util.dialog.BasisCtl.initiateServerCall(BasisCtl.java:198)
at de.tc.app.lamo.bss.dialog.stz.STZCtl.funcLesen(STZCtl.java:106)
at de.tc.app.lamo.bss.dialog.stz.STZView$1.actionPerformed(STZView.java:163)
at javax.swing.JTextField.fireActionPerformed(JTextField.java:492)
at javax.swing.JTextField.postActionEvent(JTextField.java:705)
at javax.swing.JTextField$NotifyAction.actionPerformed(JTextField.java:820)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1639)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2859)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2894)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2822)
at java.awt.Component.processEvent(Component.java:6074)
at java.awt.Container.processEvent(Container.java:2039)
at java.awt.Component.dispatchEventImpl(Component.java:4660)
at java.awt.Container.dispatchEventImpl(Container.java:2097)
at java.awt.Component.dispatchEvent(Component.java:4488)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1856)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:722)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1000)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:865)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:686)
at java.awt.Component.dispatchEventImpl(Component.java:4532)
at java.awt.Container.dispatchEventImpl(Container.java:2097)
at java.awt.Window.dispatchEventImpl(Window.java:2489)
at java.awt.Component.dispatchEvent(Component.java:4488)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:668)
at java.awt.EventQueue.access$400(EventQueue.java:81)
at java.awt.EventQueue$2.run(EventQueue.java:627)
at java.awt.EventQueue$2.run(EventQueue.java:625)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:641)
at java.awt.EventQueue$3.run(EventQueue.java:639)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:638)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Exception Serveraufruf: de.tc.app.lamo.awf.stub.Corba_St_STZAwf.lese
org.omg.CORBA.BAD_PARAM: vmcid: 0x0 minor code: 0 completed: No
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at com.inprise.vbroker.orb.SE.read(Unknown Source)
at com.inprise.vbroker.orb.DelegateImpl.handleReply(Unknown Source)
at com.inprise.vbroker.orb.DelegateImpl.invoke(Unknown Source)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457)
at de.tc.app.lamo.awf.corba._STZAwfStub.lese(_STZAwfStub.java:272)
at de.tc.app.lamo.awf.stub.Corba_St_STZAwf.lese(Corba_St_STZAwf.java:50)
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 de.tc.app.lamo.bss.util.dialog.AbstractCallProxy.call(AbstractCallProxy.java:145)
at de.tc.app.lamo.bss.util.dialog.AbstractCallProxy.doCall(AbstractCallProxy.java:431)
at de.tc.app.lamo.bss.util.dialog.AbstractCallProxy.run(AbstractCallProxy.java:346)
at de.tc.app.lamo.bss.util.dialog.CallProxy.run(CallProxy.java:141)
at java.lang.Thread.run(Thread.java:662)
L'erreur est reproductible. Pendant le débogage, je peux voir que les données sont chargées par l'arrière-plan comme d'habitude et atteint le client. Le client obtient réellement la réponse mais n'est pas en mesure de traiter les données.
Le même appel de fonction fonctionne pour d'autres données. Il n'y a qu'une sélection de données particulière qui ne passe pas.
Je ne peux pas détecter de différence significative entre ces données. Les définitions idl n'ont pas été modifiées non plus.
Avez-vous des indications pour moi, où chercher la cause de l'erreur?
Est-ce la totalité de la pile de pile? – John
Bonjour John, J'ai ajouté l'ensemble stacktrace à mon poste. Des idées maintenant? –