考虑到我一直在和Karaf干涉一段时间,这有点令人尴尬。
我有一个服务实现包和一个CXF-REST包。如果我在ServiceImpl包之前将REST包绑入到我的deploy文件夹中,它会等待服务包几秒钟,然后进入Failed
状态。显然,如果按顺序执行,一切顺利 - 首先是ServiceImpl,然后是REST。我希望我的REST服务永远等待,直到部署ServiceImpl(就像其他OSGi包一样)
我的猜测是,有一些地方我应该增加超时等待永远。这个猜测基于以下事实:对于PaxExam测试,我应该这样做。
@Inject
@Filter(timeout = 300000)
BootFinished bootFinished;
我是在寻找错误的地方,还是应该在其他地方查找Activator或Export / Import包等提示?
据我所知,将.kar文件与其余库一起部署(我将依赖项部署为.kar)可以解决这个问题,但我不想为REST和Impl捆绑这样做因为速度更快部署(和带宽大小 - 我在EC2上)。
答案 0 :(得分: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