【发布时间】:2010-05-10 07:16:17
【问题描述】:
String[] orbargs= {};
org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(orbargs, null);
org.omg.CORBA.Object cobj = orb.string_to_object("corbaloc:iiop:10.1.1.200:6969/OurServiceHelper");
_OurServiceHelper cpsh = _OurServiceHelperHelper.narrow(cobj); // Get's stuck
cpsh.ourMethod();
那个窄就挂了。
我的服务设置为在静态端口上运行。我们知道它有效,因为我们通常通过 NamingService 查找它。
我做错了什么?
【问题讨论】:
-
我猜这是Java?如果是这样,您可能应该重新标记。我建议发布该进程的线程转储。
-
我相信问题出在我的 corbaloc 字符串上。在 _OurServiceHelper 中被 _is_a() 方法阻塞。所有这些都是生成的代码。我跟踪了 OpenOrb 代码,但并不真正了解发生了什么。无论如何,作为一个测试,我在服务端生成了 IOR 并使用了它。这行得通。 org.omg.CORBA.Object cobj =orb.string_to_object("IOR:hugestring");