我正在开发一个使用RMI激活的系统,以便在它们自己的JVM中隔离一组相似但独立的组件,以便如果一个崩溃(a)不会降低整个系统的性能,(b)在下次需要时它会自动重新启动。我为每个组件注册一个激活组,然后我想在该组内注册可激活对象。综观公共API,似乎有对如何注册ActivationDesc
与激活系统两种选择:如何在注册可激活对象时生成存根和ActivationID
ActivationGroup.getSystem().registerObject
,它的回报,如果你想随后注销对象Activatable.register
您需要的ActivationID
,它返回一个存根,通过它可以激活和调用远程对象。
但我无法找到通过公共API什么办法让这两个存根和为同一注册ID - 我看没有明显的方式来获取客户端存根对于给定ActivationID
(没有实际接触激活器并激活远程对象,这是ActivationID.activate
会做的),也不获得给定存根的ActivationID
。
我错过了什么?有没有办法做到这一点,而无需深入研究内部sun.*
API?