关于远程连接IBM JDK启动的apusic应用服务器的问题(转自李其的文档)
如何处理远程连接IBM JDK启动的apusic应用服务器的时产生的问题
1、问题描述
远程连接IBM JDK启动的apusic应用服务器,抛出无法连接的异常(请查看下面的异常描述)。
2、配置的环境
服务端端JDK:IBM JDK 1.4.2 build cn142ifx-20060209
服务器端Apusic: Apusic/Advanced 4.0.3 Build 200608222129
服务器端操作系统:window 2000
客户端操作系统:window xp sp2
客户端JDK:SUN JDK 1.4.2_07-b05
3、问题的解决
经过调式发现,在生成CORBA的Stub时,使用默认的IBM的JDK实现(StubDelegateImpl)发生错误,返回null,故导致 export client对象失败;
在命令行上加入以下参数指定CORBA所是用的实现,启动Apusic
-Djavax.rmi.CORBA.UtilClass=com.apusic.corba.ee.impl.javax.rmi.CORBA.Util
-Djavax.rmi.CORBA.StubClass=com.apusic.corba.ee.impl.javax.rmi.CORBA.StubDelegateImpl
-Djavax.rmi.CORBA.PortableRemoteObjectClass=com.apusic.corba.ee.impl.javax.rmi.PortableRemoteObject
4、异常
java.rmi.NoSuchObjectException: CORBA INV_OBJREF 1398080891 No; nested exception
is:org.omg.CORBA.INV_OBJREF: ----------BEGIN server-side stack trace-------org.omg.CORBA.INV_OBJREF: vmcid: 0x53550000 minor code: 57B completed: No
atcom.apusic.corba.ee.impl.logging.UtilSystemException.objectNotExported(Unknown Source)
at com.apusic.corba.ee.impl.logging.UtilSystemException.objectNotExported(Unknown Source)
at com.apusic.corba.ee.impl.util.Utility.autoConnect(Unknown Source)
at com.apusic.corba.ee.impl.javax.rmi.CORBA.Util.writeRemoteObject(Unknown Source)
at com.apusic.corba.rmi.Util.writeRemoteObject(Unknown Source)
at javax.rmi.CORBA.Util.writeRemoteObject(Util.java:128)
at javax.management.remote.rmi._RMIServerImpl_Tie._invoke(<generated>)
at com.apusic.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(Unknown Source)
at com.apusic.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(Unknown Source)
at com.apusic.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(UnknownSource)
at com.apusic.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(Unknown Source)
at com.apusic.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(Unknown Source)
at com.apusic.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(Unknown Source)
at com.apusic.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(Unknown Source)
at com.apusic.corba.ee.impl.transport.SocketOrChannelConnectionImpl.dispatch(Unknown Source)
at com.apusic.corba.ee.impl.transport.SocketOrChannelConnectionImpl.doWork(Unknown Source)
at com.apusic.corba.plugin.ee.ThreadPoolImpl$WorkAdapter.run(Unknown Source)
at com.apusic.util.ThreadPoolImpl$WorkerThread.run(Unknown Source)
----------END server-side stack trace---------- vmcid: SUN minor code: 1403 completed: No
at com.sun.corba.se.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:191)
at com.apusic.corba.rmi.Util.mapSystemException(Unknown Source)
at javax.rmi.CORBA.Util.mapSystemException(Util.java:67)
at org.omg.stub.javax.management.remote.rmi._RMIServer_Stub.newClient(Unknown Source)
at javax.management.remote.rmi.RMIConnector.getConnection(RMIConnector.java:2229)
at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:271)
at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:229)
at com.apusic.management.tool.perf.DynamicServerNode.connec(DynamicServerNode.java:102)
at com.apusic.management.tool.perf.RootNode.connect(RootNode.java:91)
at com.apusic.management.tool.MainWindow.connect(MainWindow.java:433)
at com.apusic.management.tool.LogonWindow$ConnectWorker.run(LogonWindow.java:190)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.omg.CORBA.INV_OBJREF: ----------BEGIN server-side stack trace----------
org.omg.CORBA.INV_OBJREF: vmcid: 0x53550000 minor code: 57B completed: No
at com.apusic.corba.ee.impl.logging.UtilSystemException.objectNotExported(Unknown Source)
at com.apusic.corba.ee.impl.logging.UtilSystemException.objectNotExported(Unknown Source)
at com.apusic.corba.ee.impl.util.Utility.autoConnect(Unknown Source)
at com.apusic.corba.ee.impl.javax.rmi.CORBA.Util.writeRemoteObject(Unknown Source)
at com.apusic.corba.rmi.Util.writeRemoteObject(Unknown Source)
at javax.rmi.CORBA.Util.writeRemoteObject(Util.java:128)
at javax.management.remote.rmi._RMIServerImpl_Tie._invoke(<generated>)
at com.apusic.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(Unknown Source)
at com.apusic.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(Unknown Source)
at com.apusic.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(Unknown Source)
at com.apusic.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(Unknown Source)
at com.apusic.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(Unknown Source)
at com.apusic.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(Unknown Source)
at com.apusic.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(Unknown Source)
at com.apusic.corba.ee.impl.transport.SocketOrChannelConnectionImpl.dispatch(Unknown Source)
at com.apusic.corba.ee.impl.transport.SocketOrChannelConnectionImpl.doWork(Unknown Source)
at com.apusic.corba.plugin.ee.ThreadPoolImpl$WorkAdapter.run(Unknown Source)
at com.apusic.util.ThreadPoolImpl$WorkerThread.run(Unknown Source)
----------END server-side stack trace---------- vmcid: SUN minor code: 1403 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:494)
at com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase.getSystemException(MessageBase.java:902)
at com.sun.corba.se.impl.protocol.giopmsgheaders.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:99)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.getSystemExceptionReply(CorbaMessageMediatorImpl.java:572)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.processResponse(CorbaClientRequestDispatcherImpl.java:430)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marsh
alingComplete(CorbaClientRequestDispatcherImpl.java:326)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:129)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457)
... 9 moresetting state:0