Eclipse e4 RCP 应用程序无法启动,并出现"Unable to retrieve the bundle from the URI"错误



尝试启动我正在开发的 Eclipse e4 RCP 应用程序时,显示以下错误消息...

!ENTRY org.eclipse.e4.ui.workbench 4 0 2018-05-05 14:01:24.060
!MESSAGE Unable to retrieve the bundle from the URI: bundleclass://com.mycompany.myapp/com.mycompany.myapp.demo.DemoPart

我认为问题可能是由feature.xml文件中未定义的插件引起的,但是我无法弄清楚缺少哪个插件。使用插件MANIFEST.MF文件"依赖关系分析"部分下的"显示插件依赖关系层次结构"功能,我在feature.xml文件中包含了所有插件依赖关系。

该产品基于功能,由我开发的插件和从Eclipse Orbit中提取的第三方依赖项组成。应用程序当前正在使用 Eclipse 中的产品文件启动。

我的问题是...

  1. 是否可以从 Eclipse RCP 应用程序获得更详细的错误消息,以指示问题的原因?
  2. 我可以采取任何其他故障排除步骤来获取问题的原因吗?
  3. 假设问题是由缺少的插件引起的,是否可以确定实际缺少哪个插件?

解决方案是使用 OSGI 控制台来确定无法加载捆绑包的原因。这需要执行多个步骤:

  1. 将参数-console 5555添加到产品文件启动参数
  2. 使用端口 5555 上的 telnet 或 Eclipse IDE 中的控制台视图连接到控制台
  3. 使用命令查找捆绑包 ID,ss <xxx>其中<xxxx>是不会加载的捆绑包的名称,或者仅使用命令ss并在列表中查找捆绑包
  4. 运行命令diag <bundle-id>其中<bundle-id>是从上一步获取的 ID。这应该指示捆绑包失败的原因
  5. 如果问题是由于缺少依赖项引起的,请在feature.xml文件中查找一个或多个带有文本Unresolved requirement和缺少插件的条目

可能需要多次重复步骤 2 到 5 才能找到所有缺少的依赖项。

相关内容

最新更新