我在Jboss Fuse中运行了2个osgi包(比如A和B)。我正在使用菲利克斯。 &#39; A&#39;捆绑包暴露了一种服务,即&#39; B&#39;捆绑使用。当我部署这两个捆绑包时没有问题。当我执行osgi:ls -u时,我看到那个包&#39; B&#39;正在使用捆绑销售的服务&#39; <&#39;
我将这两个捆绑包重新捆绑在一起后捆绑了&#39; B&#39;无法找到Bundle&#39; A&#39;所暴露的服务。在这个阶段,如果我执行命令 osgi:ls,我看到通过bundle&#39; A&#39;暴露的OSGI服务。当我执行osgi:ls -u时,我不会看到该捆绑包&#39; B&#39;正在使用捆绑销售的服务&#39; <&#39;
我有2个解决方法来解决这个问题
有谁能告诉我为什么我会观察这种行为以及如何解决它? ?
答案 0 :(得分:0)
注意到当捆绑包B在正常的spring扩展程序进程之外创建其app ctx时,可能会发生这种情况。例如,bundle B根据外部事件创建app ctx,app ctx导入从bundle A导出的osgi服务。如果使用spring-dm导出/导入osgi服务,请使用ServiceTracker
via { {1}}而不是。