【发布时间】:2010-07-01 08:24:36
【问题描述】:
大家好。我们在 Eclipse RCP 应用程序中使用 OSGi 服务。为了跟踪它们,我们使用了org.osgi.util.tracker.ServiceTracker 类。应用程序的示例代码如下所示
mailServiceTracker = new ServiceTracker(context, MailService.class.getName(), null);
mailServiceTracker.open();
MailService service = (MailService) mailServiceTracker.getService();
现在我的问题是,当我创建新服务时,getService() 方法经常返回 null。该代码对于应用程序中存在很长时间的服务非常有效,但是每次创建新服务时,我都必须做很多事情,直到最终找到并跟踪该服务。例如,我经常尝试
- Eclipse 中的“清理...”
- “刷新”Eclipse 中的所有项目
- 在命令行重建项目
这些东西有时会有所帮助,有时却无济于事。有没有人有使用这些跟踪器的经验,可以告诉我如何避免这种行为以及如何在创建后立即跟踪服务?
谢谢
【问题讨论】:
标签: service osgi eclipse-rcp tracker