【问题标题】:Apache Karaf - wait for bundleApache Karaf - 等待捆绑
【发布时间】:2014-05-04 19:28:18
【问题描述】:

考虑到我已经和 Karaf 打交道已经有一段时间了,这有点令人尴尬。

我有一个服务实现包和一个 CXF-REST 包。如果我在 ServiceImpl 包之前将 REST 包放入我的部署文件夹,它会等待服务包几秒钟,然后进入Failed 状态。显然,如果我按顺序执行,一切都会顺利 - 首先是 ServiceImpl,然后是 REST。我希望我的 REST 服务永远等待,直到部署 ServiceImpl(就像其他 OSGi 捆绑包一样)

我的猜测是,在某些地方我应该增加超时以永久等待。这个猜测是基于这样一个事实,即对于 PaxExam 测试,我应该这样做。

@Inject
@Filter(timeout = 300000)
BootFinished bootFinished;

(来源:KarafTestSupport.java

我是在看错地方还是应该在其他地方寻找 Activator 或导出/导入包之类的提示?

我知道部署为 .kar 文件以及其他库(我将依赖项部署为 .kar)可以解决这个问题,但我不想为 REST 和 Impl 包这样做,因为速度更快部署(和带宽大小 - 我在 EC2 上)。

【问题讨论】:

  • 是 karaf 3.0 吗?您是否在失败的捆绑包上使用了 bundle:info 命令?它应该会告诉你失败的原因。
  • 是的@AchimNierbeck。原因只是因为它等待服务实现包超时。刚刚在 karaf 邮件列表上发布了这个问题并得到了修复。

标签: osgi apache-karaf osgi-bundle


【解决方案1】:

之前我没有设置任何超时。

<reference  id=“xxxServiceBean"
           interface="com.nutraspace.coreservices.search.service.impl.base.NewsSearchService">
</reference>

现在我已将其设置为 10 分钟,效果很好。经过测试和验证。

<reference timeout="600000" id=“xxxServiceBean"
           interface="com.nutraspace.coreservices.search.service.impl.base.NewsSearchService">
</reference>

这是该主题的链接

http://karaf.922171.n3.nabble.com/Waiting-for-dependent-bundle-td4032415.html

【讨论】:

    猜你喜欢
    • 2022-08-14
    • 2015-05-22
    • 2015-12-05
    • 2012-04-13
    • 2012-08-29
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多