我尝试按如下方式加载工件和元数据存储库管理器
private IArtifactRepositoryManager getArtifactRepositoryManager() {
IArtifactRepositoryManager artifactManager = (IArtifactRepositoryManager)
ServiceHelper.getService(ProvUIActivator.getContext(),
IArtifactRepositoryManager.class.getName());
if(artifactManager == null) {
LOG.error("ArtifactRepositoryManager service nor found");
}
return artifactManager;
}
ServiceHelper 始终返回 null。还有其他方法来获取存储库管理器吗?我正在使用 Eclipse/RCP 3.7 (Indigo)。
我之前使用过 Eclipse 3.5 中的 bundle ,使用此代码一切正常:
private IMetadataRepositoryManager getMetadataRepositoryManager() {
//Load repository manager
IMetadataRepositoryManager metadataManager = (IMetadataRepositoryManager) context.getService(
context.getServiceReference(IMetadataRepositoryManager.class.getName()));
return metadataManager;
}
最佳答案
我认为解决方案是确保 p2 插件在您的插件启动之前启动。在您的产品配置中相应地设置自动启动级别。
<configurations>
<plugin id="my.plugin" autoStart="false" startLevel="7" />
<plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="6" />
<plugin id="org.eclipse.equinox.p2.core" autoStart="true" startLevel="5" />
</configurations>
关于java - 工件和元数据存储库管理器为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7107840/