osgi捆绑包何时进入等待状态?
我们有一个osgi捆绑包进入等待状态并永远停留在那里。
我们的 blueprint.xml 就像这样:
public SouthboundProvider(DataBroker dataBroker,NotificationPublishService notifprov,CommonApi commonApi)
{
this.dataBroker = dataBroker;
this.notifProvider = notifprov;
this.commonApi = commonApi;
dataStoreSemaphore = new Semaphore(1, true);
}
同一bean的构造函数如下:
#include <iostream>
#include <vector>
#include <map>
using vector_int_type = std::vector<int>;
std::ostream& operator << (std::ostream& os, const vector_int_type& vect) {
for (const auto& i : vect)
os << '\t' << i;
return os;
}
int main()
{
std::map<int, vector_int_type> int_map;
int_map[1] = vector_int_type{ 1,2,3 };
int_map[2] = vector_int_type{ 4,5,6 };
for (auto& item : int_map)
std::cout << item.first << " is: " << item.second << std::endl;
}
我希望在上面的代码中:
如果任何(commonApi,dataBroker或notificationService)服务不可用,则捆绑软件应进入失败状态(上面的模式是构造函数注入)。
我们所看到的:
捆绑包进入等待状态。我们看到此状态1/100次。
有人可以提出一种方法来重现该问题并在我们看到该问题的情况下分享吗?