0

我有一个遗留的 Swing 应用程序,需要使用 JavaFX 功能进行扩展。我一直在考虑使用 OSGi 来执行此操作(目前正在查看 Equinox)。

现有的遗留应用程序依赖于 jar 文件 main.jar。这个 jar 包含我为扩展功能而创建的任何包所需的接口,例如添加新面板、菜单等。

遗留应用程序在完成其摇摆任务后启动 OSGi 框架,在 main.jar 中注册实现接口的服务,并安装任何包。

我试图将这个 jar 放入包中,编译很好,但是在从 OSGi 注册表检索服务时,我得到了 ClassCastException。

我不确定如何配置框架/捆绑包,以便遗留应用程序和 osgi 捆绑包都可以使用 main.jar?

4

1 回答 1

0

您需要使用 OSGi 框架的系统捆绑导出来公开需要共享的包。您可以通过传递属性来做到这一点org.osgi.framework.system.packages.extra

前段时间我写了一篇关于嵌入 OSGi 的博文,它涵盖了诸如在内部 OSGi 包和外部 Java 应用程序之间共享包和服务等方面。

于 2013-10-24T20:59:38.313 回答