1

我正在尝试了解 Fabric8 的容器管理功能。我只是想澄清一下天气可以通过在 JBossFuse 中使用 Fabric8 来实现以下场景。

我创建了简单的 2 个捆绑包(tick、tock 捆绑包,灵感来自:http: //kevinboone.net/osgtest.html)。Simply Tick bundle 正在导出一个包,而 Tock bundle 正在导入它。换句话说,Tock Bundle 依赖于 Tick Bundle。

这 2 个捆绑包在部署在单个容器中(例如在 JBoossFuse 中的一个子容器中)时可以完美运行。

然后,我使用 fabric8 创建了一个集群,并将其容器添加到 Fabric Ensemble 中。

我创建了 2 个配置文件。TickProfile 包含 Tick 包,Tock 配置文件包含 Tock 包。

我已经在 2 个不同的容器中部署了以上 2 个配置文件,如下所示,

在此处输入图像描述

然后它无法正常工作,因为 Tock 捆绑包无法解析其对 Tick Bundle 的依赖关系,它由 Tick Bundle 公开(因为这些捆绑包位于两个不同的容器中)。

我认为fabric8可以做到这一点,但似乎不能。

如果有人能告诉我是否有任何方法可以实现这一点,我将不胜感激。

谢谢。

4

1 回答 1

1

不,这是不可能的。OSGi 级别的包导出和导入绑定到 JVM。这意味着不同 JVM 中的包将无法相互导入其他类。

唯一支持集群的 OSGi 概念是服务。OSGi 规范调用该远程服务。

请参阅:https ://wiki.eclipse.org/Tutorial:_Building_your_first_OSGi_Remote_Service

于 2015-04-29T11:18:13.267 回答