我有一个棘手的问题。而对于CORBA来说,我是无法摆脱的。

如何从另一个实现中实例化一个实现对象?

通常,如果我具有接口A。我将创建一个A_Impl类(在A_Impl.java文件中),该类继承自idl生成的A_POA类。

然后,在服务器端,我将执行以下操作:

AImpl  my_a_impl = new A_Impl ();
org.omg.CORBA.Object ref = orb.activate_object(my_a_impl);
A my_a_object = A.narrow(ref);


但是,当另一个对象B的方法之一需要返回A时该怎么办?

在我的B_impl类中,我无权访问orb,因此无法通过使用activate_object方法获得对我的对象的引用。

然后如何返回这样的对象?

任何帮助将不胜感激。
提前致谢 !

最佳答案

CORBA已经提供了可用于获取现有ORB参考的功能-ORB_init()。对于大多数ORB,该函数的行为类似于单例,并且会假定您每次调用时都使用相同的ORB ID,它将返回一个现有的ORB对象。

关于java - 获得对ORB的访问权吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10124487/

10-13 09:08