2011-01-30 81 views
0

BundlesEclipse RCP中的RMI回调

所以我在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} 

并在客户端我设置了安全管理器到个人实施其允许的一切。

那么有没有人有一个想法,为什么没有找到类?

回答

0

所以对此的愤世嫉俗的回答是不使用Sun RMI实现。

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