我使用OSGI和equinox,并且在新组件依赖项上遇到问题。它有两个服务引用,它们都被标记为“不满意”。
这将是一个简单的不满意的引用问题,它不是因为有另一个组件使用其中一个引用并且它满足,另一个是满足的组件系统也是如此。
我试图调试“AgentServiceImpl”'类,以确定这是否可能是它的激活问题,但由于它的引用不满意,所以甚至不会调用类的方法。
不知道我在这个案例中做错了什么,任何修复建议或解决这个问题的方法都会非常感激。
[更新]
我注意到我所依赖的服务在其组件声明上有此配置:
policy = ConfigurationPolicy.REQUIRE, configurationPid = "com.rm.ums.ruleengine"
所以,如果我不定义它,它不应该构建组件。但是,即使检索ConfigurationAdmin并设置此配置,该组件仍然不会上升。并且控制台上没有错误消息,在这种情况下不应显示错误或警告,因此开发人员知道这种情况正在发生并可以处理吗?
答案 0 :(得分:1)
事实证明这是一个服务配置问题。
我试图注入的这个组件的策略为'REQUIRE',这意味着除非你提供配置,否则它不会启动。我使用ConfigurationAdmin在另一个bundle上提供配置,但是这个配置被绑定到我的bundle而不是需要它的那个。
一旦我配置了不将配置绑定到我的捆绑包(或手动取消绑定),服务就按预期启动了。
可能这可以避免在日志上发出警告信息,说明发生这种情况:(