karaf:在包之间共享数据

karaf: sharing data between bundles

如何在 Karaf 中的包之间共享数据?我正在加载两个不同功能的包。我想从其中一个包中写入共享内存段之类的东西,然后从另一个包中读取它。谢谢

基本上,您可以像在任何其他 java 应用程序中一样使用所有方式进行通信。不过,并非所有库都与 OSGi 很好地兼容。

一种以松耦合方式进行通信的内置方式是 eventadmin 服务。例如,参见此 tutorial from vogella

OSGi 中最典型的情况是让一个 bundle 提供 OSGi 服务,另一个 bundle 调用它。

还有像 hazelcast 这样的库,它们甚至在集群的节点之间使用一种共享内存。在不了解您的要求和您正在尝试做什么的情况下,很难推荐一种方法。