確かに、私は CORBA に不慣れで、ORB を使用しています。TAO ORB バージョン 1.3 を使用しているサードパーティのマシンにインストールされるコードがあります。私のコードが呼び出すとき:
String myObjectString = "IOR:010000002d00000049444c3a637573732e696174612e6f72672f436f6d706f6e656e74732f4d656469614f75747075743a312e3000000000030000000000000038000000010102000a0000006c6f63616c686f737400204e1b00000014010f00525354a90b6c57ea3c060002000000010000000300000000000000000000000038000000010102000a0000006c6f63616c686f737400214e1b00000014010f00525354a90b6c57ea3c060002000000010000000300000000000000000000000038000000010102000a0000006c6f63616c686f737400224e1b00000014010f00525354a90b6c57ea3c06000200000001000000030000000000000000";
ORB.string_to_object(myObjectString);
例外があります:
java.lang.NullPointerException
at com.sun.corba.se.spi.orb.ORB.getPresentationManager(Unknown Source)
at com.sun.corba.se.spi.orb.ORB.getStubFactoryFactory(Unknown Source)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_Object(Unknown Source)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_Object(Unknown Source)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_Object(Unknown Source)
at com.sun.corba.se.impl.resolver.INSURLOperationImpl.getIORFromString(Unknown Source)
at com.sun.corba.se.impl.resolver.INSURLOperationImpl.operate(Unknown Source)
at com.sun.corba.se.impl.orb.ORBImpl.string_to_object(Unknown Source)
at CussClient.enableMediaOutput(CussClient.java:1232)
at CussClient.ActivateComponents(CussClient.java:1879)
at CussClient.setApplicationState(CussClient.java:268)
at CussClient.HandleEvent(CussClient.java:2425)
at evtListenerImpl.callback(evtListenerImpl.java:31)
at types.evtListenerPOA._invoke(evtListenerPOA.java:49)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleInput(Unknown Source)
at com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(Unknown Source)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.dispatch(Unknown Source)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.doWork(Unknown Source)
at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.performWork(Unknown Source)
at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(Unknown Source)
この同じコードは、他の ORB を実行している他のサードパーティ マシンでも機能するため、これが TAO ORB の問題なのか、それとも別の問題なのかはわかりません。なぜこれが起こっているのか教えてくれる ORB マスターはいますか?