我有一个棘手的问题。而对于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/