Eclipse越来越多地使用面向服务的体系结构,这很好,但我只是看到通过插件和在什么阶段缺乏知识的开发人员>服务已注册为问题?
考虑例子:
IServiceLocator someServiceLocator = ...
SomeService someService = (SomeService)someServiceLocator.getService(SomeService.class);
// oops, someService is null
someService
为null
的原因可能是:
如何解决这个问题?有没有工具?
感谢。
答案 0 :(得分:0)
简短的回答:没有可用的工具。
有关服务的完整列表及其注册位置,请在ServiceLocator.registerService(Class api, Object service)
上执行“呼叫层次结构”。
有关可用全球服务的良好列表,请查看Workbench.initializeDefaultServices()
。还有一些其他服务仅在窗口或工作台部件级别提供。
答案 1 :(得分:0)
如果您想知道安装和启动了哪些插件,可以使用OSGI控制台查看插件的状态。
因此,如果您正在寻找服务“XService”,请找到包含该服务的插件并在OSGI控制台上查找插件状态。
使用-console
选项启动应用程序,并在osgi控制台上键入ss
。这不是直截了当但有效。