【发布时间】:2014-05-04 19:28:18
【问题描述】:
考虑到我已经和 Karaf 打交道已经有一段时间了,这有点令人尴尬。
我有一个服务实现包和一个 CXF-REST 包。如果我在 ServiceImpl 包之前将 REST 包放入我的部署文件夹,它会等待服务包几秒钟,然后进入Failed 状态。显然,如果我按顺序执行,一切都会顺利 - 首先是 ServiceImpl,然后是 REST。我希望我的 REST 服务永远等待,直到部署 ServiceImpl(就像其他 OSGi 捆绑包一样)
我的猜测是,在某些地方我应该增加超时以永久等待。这个猜测是基于这样一个事实,即对于 PaxExam 测试,我应该这样做。
@Inject
@Filter(timeout = 300000)
BootFinished bootFinished;
我是在看错地方还是应该在其他地方寻找 Activator 或导出/导入包之类的提示?
我知道部署为 .kar 文件以及其他库(我将依赖项部署为 .kar)可以解决这个问题,但我不想为 REST 和 Impl 包这样做,因为速度更快部署(和带宽大小 - 我在 EC2 上)。
【问题讨论】:
-
是 karaf 3.0 吗?您是否在失败的捆绑包上使用了 bundle:info 命令?它应该会告诉你失败的原因。
-
是的@AchimNierbeck。原因只是因为它等待服务实现包超时。刚刚在 karaf 邮件列表上发布了这个问题并得到了修复。
标签: osgi apache-karaf osgi-bundle