CORBA.MARSHAL:无法从底层网桥读取值:初始和转发的 IOR 不可访问 vmcid

Posted

技术标签:

【中文标题】CORBA.MARSHAL:无法从底层网桥读取值:初始和转发的 IOR 不可访问 vmcid【英文标题】:CORBA.MARSHAL: Unable to read value from underlying bridge : initial and forwarded IOR inaccessible vmcid 【发布时间】:2019-01-30 11:39:53 【问题描述】:

我正在使用 JDK 1.7.1 64 位的 IBM WebSphere 8.5 上运行我的 Java EE 项目。

当我从 Swing 客户端(JDK 1.8 Oracle 64 位)远程调用 EJB 时,会引发以下异常。我曾尝试在客户端使用不同的JDK(甚至使用服务器JDK),结果始终相同:

2019-01-30 11:49:20 ERROR OpMyProject:261 - CORBA MARSHAL 0x4942f89a No; nested exception is:
   org.omg.CORBA.MARSHAL:
   >> SERVER (id=4ee74d90, host=myhost.local) TRACE START:
   >>    org.omg.CORBA.MARSHAL: Unable to read value from underlying bridge : initial and forwarded IOR inaccessible  vmcid: IBM  minor code: 89A  completed: No
   >>     at com.ibm.rmi.iiop.IDRReader.read_value(IDRReader.java:2054)
   >>     at com.ibm.rmi.iiop.EncoderInputStream.read_value(EncoderInputStream.java:963)
   >>     at org.myproject.model.ejb._EJSRemote0SLMyProjectBean_e0f6ccfa_Tie.havePermission(_EJSRemote0SLMyProjectBean_e0f6ccfa_Tie.java:100)
   >>     at org.myproject.model.ejb._EJSRemote0SLMyProjectBean_e0f6ccfa_Tie._invoke(_EJSRemote0SLMyProjectBean_e0f6ccfa_Tie.java)
   >>     at com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java:628)
   >>     at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:510)
   >>     at com.ibm.rmi.iiop.ORB.process(ORB.java:607)
   >>     at com.ibm.CORBA.iiop.ORB.process(ORB.java:1583)
   >>     at com.ibm.rmi.iiop.Connection.doRequestWork(Connection.java:3166)
   >>     at com.ibm.rmi.iiop.Connection.doWork(Connection.java:3030)
   >>     at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:64)
   >>     at com.ibm.ws.giop.threadpool.WorkQueueElement.dispatch(WorkQueueElement.java:174)
   >>     at com.ibm.ws.giop.filter.GiopFilterChain.processMessage(GiopFilterChain.java:203)
   >>     at com.ibm.ws.giop.threadpool.PooledThread.handleRequest(PooledThread.java:81)
   >>     at com.ibm.ws.giop.threadpool.PooledThread.run(PooledThread.java:102)
   >>     at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892)
   >> SERVER (id=4ee74d90, host=myhost.local) TRACE END.
  vmcid: IBM  minor code: 89A  completed: No
java.rmi.MarshalException: CORBA MARSHAL 0x4942f89a No; nested exception is:
   org.omg.CORBA.MARSHAL:
   >> SERVER (id=4ee74d90, host=myhost.local) TRACE START:
   >>    org.omg.CORBA.MARSHAL: Unable to read value from underlying bridge : initial and forwarded IOR inaccessible  vmcid: IBM  minor code: 89A  completed: No
   >>     at com.ibm.rmi.iiop.IDRReader.read_value(IDRReader.java:2054)
   >>     at com.ibm.rmi.iiop.EncoderInputStream.read_value(EncoderInputStream.java:963)
   >>     at org.myproject.model.ejb._EJSRemote0SLMyProjectBean_e0f6ccfa_Tie.havePermission(_EJSRemote0SLMyProjectBean_e0f6ccfa_Tie.java:100)
   >>     at org.myproject.model.ejb._EJSRemote0SLMyProjectBean_e0f6ccfa_Tie._invoke(_EJSRemote0SLMyProjectBean_e0f6ccfa_Tie.java)
   >>     at com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java:628)
   >>     at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:510)
   >>     at com.ibm.rmi.iiop.ORB.process(ORB.java:607)
   >>     at com.ibm.CORBA.iiop.ORB.process(ORB.java:1583)
   >>     at com.ibm.rmi.iiop.Connection.doRequestWork(Connection.java:3166)
   >>     at com.ibm.rmi.iiop.Connection.doWork(Connection.java:3030)
   >>     at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:64)
   >>     at com.ibm.ws.giop.threadpool.WorkQueueElement.dispatch(WorkQueueElement.java:174)
   >>     at com.ibm.ws.giop.filter.GiopFilterChain.processMessage(GiopFilterChain.java:203)
   >>     at com.ibm.ws.giop.threadpool.PooledThread.handleRequest(PooledThread.java:81)
   >>     at com.ibm.ws.giop.threadpool.PooledThread.run(PooledThread.java:102)
   >>     at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892)
   >> SERVER (id=4ee74d90, host=myhost.local) TRACE END.
  vmcid: IBM  minor code: 89A  completed: No
   at com.ibm.CORBA.iiop.UtilDelegateImpl.mapSystemException(UtilDelegateImpl.java:284)
   at javax.rmi.CORBA.Util.mapSystemException(Util.java:78)
   at org.myproject.model.ejb._MyProjectBeanRemote_Stub.havePermission(_MyProjectBeanRemote_Stub.java:1)
   at org.myproject.op.OpMyProject.havePermission(OpMyProject.java:258)
   at org.myproject.ui.FMyProject.init(FMyProject.java:137)
   at org.myproject.ui.FMyProject.<init>(FMyProject.java:78)
   at org.myproject.ui.MyProject.iniciaAplicacionVisual(MyProject.java:218)
   at org.myproject.ui.MyProject.access$100(MyProject.java:31)
   at org.myproject.ui.MyProject$1.loginSucceeded(MyProject.java:92)
   at org.jdesktop.swingx.auth.LoginService.fireLoginSucceeded(LoginService.java:247)
   at org.jdesktop.swingx.auth.LoginService$1$2.run(LoginService.java:153)
   at java.awt.event.InvocationEvent.dispatch(Unknown Source)
   at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$500(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)

有人不得不面对这个问题吗?

提前谢谢你

【问题讨论】:

【参考方案1】:

这些天我遇到了类似的问题。好像是防火墙的问题。许多 CORBA.MARSHAL 异常是由于失败的 ORB 元回调而发生的:

回调是(通常)从服务器发送回客户端的单独请求,必须在处理原始传入请求之前完成该请求。 仔细查看上面的堆栈,我们看到正在尝试 ORB 元回调(可能从服务器返回客户端):

你可以用一个参数来表示来避免这种情况。

com.ibm.CORBA.enableClientCallbacks=true

来源: IBM Developer Answers

希望对你有帮助。

【讨论】:

我无法修改我的防火墙规则,但将该属性设置为 JVM 参数解决了我的问题。再次感谢:-)

以上是关于CORBA.MARSHAL:无法从底层网桥读取值:初始和转发的 IOR 不可访问 vmcid的主要内容,如果未能解决你的问题,请参考以下文章

org.omg.CORBA.MARSHAL:Valuetype 没有实现 StreamableValue 或 CustomMarshal

MarshalException:CORBA MARSHAL 1398079745 / 可以找到类

无法设置从 Numpy 数组读取的适当 dtype

从头开始编写以太网桥

电脑网桥无法识别

无法从 excel 列中读取字符串值