【发布时间】:2014-01-27 11:13:24
【问题描述】:
我正在使用 OSGI 声明式服务。
在我的 java 应用程序中,我启动 Apache Felix,然后安装并启动一些包。
使用相同的文件路径安装了两个包。捆绑包启动后,应该会显示“Hello”消息。
当我安装并启动第一个包时:
Bundle bundle1 = context.installBundle("file:C://Users//bundles//myBundle.jar");
bundle1.start();
这会在控制台中显示“Hello”。
但是,当我安装第二个包时(与第一个包具有相同的文件路径)
Bundle bundle2= context.installBundle("file:C://Users//bundles//myBundle.jar");
bundle2.start();
我没有看到任何输出。这意味着第二个包的安装和/或启动被忽略了。
我需要一种方法来安装和启动两个具有相同文件路径的不同包,当我停止其中一个包时,另一个应该保持活动状态。我怎么可能做到这一点?谢谢。
我正在考虑的用例:假设我有两个用户,并且都想使用相同的功能(捆绑)。如果其中一个决定停止捆绑功能,而另一个想要保留它怎么办?
有没有更好的方法来实现这一点?谢谢。
【问题讨论】:
标签: osgi bundle apache-felix declarative