我正在尝试将Eclipse RCP与RMI结合使用。为此我创建了六个包: (括号中是依赖项)
现在我开始了服务器,但我得到了一个
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文件位于核心插件中)。 我认为问题是类路径。所以我做了核心和服务器好友:
Eclipse-BuddyPolicy: registered
核心包清单文件中的和
Eclipse-RegisterBuddy: core
在服务器捆绑包清单文件中。 这没有帮助,因为我得到了完全相同的错误。
有谁知道我在这个问题上可能出错?
答案 0 :(得分:1)
显然问题是,OSGI使用自己的Classloader。所以在我们进行命名绑定之前,我们需要:
Thread.currentThread().setContextClassLoader(
this.getClass().getClassLoader());
此后,服务器就像魅力一样,客户端可以连接。