CORBA.MARSHAL:无法从基础桥读取值:初始和转发的IOR无法访问vmcid

时间:2019-01-30 11:39:53

标签: java java-ee websphere corba

我正在使用64位JDK 1.7.1在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 个答案:

答案 0 :(得分:2)

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

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

您可以使用参数来指示避免这种情况。

com.ibm.CORBA.enableClientCallbacks=true

来源: IBM Developer Answers

希望对您有所帮助。