Eclipse RCP中的RMI回调

时间:2011-01-30 20:23:08

标签: callback eclipse-rcp classloader rmi

Bundles

所以我在Eclipse RCP应用程序中使用RMI。 RMI和OSGI的类加载器非常讨厌,但我可以解决我的第一个问题here

我的服务器应用程序由服务器捆绑包组成,该捆绑包依赖于核心。此外,使用核心扩展点( DataUpdate )加载捆绑地图

同样,客户端的启动取决于核心并加载地图作为插件。

现在从客户端向服务器发送用户不再有任何问题(解决了上述问题)。可悲的是反过来不起作用。 客户端服务器上存储为回调,并且应该接收 DataUpdate 对象。这些是在服务器上的 Map 包中创建的,并通过RMI发送。当我在客户端收到它们时,我得到了不祥的ClassNotFound异常。我和服务器上做的一样:

Thread.currentThread().setContextClassLoader(
                this.getClass().getClassLoader());

但这没有用。另外,要启动服务器和客户端,我的启动参数是:

-consoleLog -Djava.security.policy=java.policy -Djava.rmi.server.codebase=file:${workspace_loc}

在客户端,我将安全管理器设置为允许一切的个人实现。

所以有人有一个想法,为什么找不到课程?

1 个答案:

答案 0 :(得分:0)

因此,愤世嫉俗的答案不是使用Sun RMI实现。

我现在使用Kryonet我可以设置通过网络发送的对象的类。由于这些类中的每一个都知道它的类加载器,因此问题得以解决。