Eclipse rcp Eclipse RCP、RMI和捆绑包
我正在尝试将EclipseRCP与RMI结合起来。为此,我创建了六个捆绑包: (括号中是依赖项)Eclipse rcp Eclipse RCP、RMI和捆绑包,eclipse-rcp,classloader,rmi,bundle,Eclipse Rcp,Classloader,Rmi,Bundle,我正在尝试将EclipseRCP与RMI结合起来。为此,我创建了六个捆绑包: (括号中是依赖项) 核心:客户端和服务器的接口 服务器(核心):服务器实现和注册表开始类 ServerApp(服务器):GUI客户端,基本上只是实例化注册表启动器(并在激活时启动) 客户机(核心):客户机实现 ClientApp(客户端):GUI客户端 现在我启动了服务器应用程序,但我得到了一个 Caused by: java.lang.ClassNotFoundException: core.rmi.Callba
- 核心:客户端和服务器的接口
- 服务器(核心):服务器实现和注册表开始类
- ServerApp(服务器):GUI客户端,基本上只是实例化注册表启动器(并在激活时启动)
- 客户机(核心):客户机实现
- ClientApp(客户端):GUI客户端
Caused by: java.lang.ClassNotFoundException: core.rmi.CallbackServerInterface (no security manager: RMI class loader disabled)
现在我启动了服务器
-consoleLog -Djava.security.policy=java.policy -Djava.rmi.server.codebase=file:${workspace_loc}/core/
(我的java.policy文件在核心插件中)。
我认为问题在于类路径。因此,我与core和server成为好友:
Eclipse-BuddyPolicy: registered
在核心包清单文件中
Eclipse-RegisterBuddy: core
在服务器包清单文件中。
这没用,因为我犯了完全相同的错误
有人知道我在这一点上哪里会出错吗?显然问题在于,OSGI使用了自己的类加载器。因此,在进行命名绑定之前,我们需要:
Thread.currentThread().setContextClassLoader(
this.getClass().getClassLoader());
在这之后,服务器就像一个魔咒一样工作,客户端可以连接。显然问题在于,OSGI使用了自己的类加载器。因此,在进行命名绑定之前,我们需要:
Thread.currentThread().setContextClassLoader(
this.getClass().getClassLoader());
在此之后,服务器就像一个魔咒一样工作,客户端可以连接