OSGI+;Spring-DM跨包依赖死锁

OSGI+;Spring-DM跨包依赖死锁,osgi,springsource-dm-server,Osgi,Springsource Dm Server,正如标题所示,我在OSGI+SpringDM方面遇到了问题 在我的项目设计中,我有一个bundle a,它需要服务svB并导出服务svA。捆绑包B需要svA并导出svB(当然还有其他内容)。这似乎导致了死锁,因为两个包似乎都在等待另一个上线。Spring DM是否可能出现这种死锁?有解决方案吗?这听起来不像是Spring DM的问题,而是您为自己设置了这个死锁:a依赖于B,B依赖于a,因此没有人可以完成任何工作。要突破这一点,您可能需要更改设计,并使A或B中的任何一个都可以在没有另一个的情况下启

正如标题所示,我在OSGI+SpringDM方面遇到了问题


在我的项目设计中,我有一个bundle a,它需要服务svB并导出服务svA。捆绑包B需要svA并导出svB(当然还有其他内容)。这似乎导致了死锁,因为两个包似乎都在等待另一个上线。Spring DM是否可能出现这种死锁?有解决方案吗?

这听起来不像是Spring DM的问题,而是您为自己设置了这个死锁:a依赖于B,B依赖于a,因此没有人可以完成任何工作。要突破这一点,您可能需要更改设计,并使A或B中的任何一个都可以在没有另一个的情况下启动。同时,另一个应该内置一些延迟加载逻辑(这将是您的工作),并在另一个自己联机时继续启动序列


使用OSGi声明性服务,您可以声明对服务的依赖关系,但允许它在启动时不存在(使用基数选项执行此操作)。

事实证明,这正是我昨天解决此问题的方法。我本来想把答案贴在这里,但你抢先一步。谢谢你