2011-01-30 87 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,我可以設置通過網絡發送的對象的類。由於這些類中的每一個都知道它的類加載器,所以問題就解決了。