简体   繁体   English

Eclipse e4 RCP应用程序无法启动,并显示“无法从URI检索捆绑软件”错误

[英]Eclipse e4 RCP application fails to start with “Unable to retrieve the bundle from the URI” error

When attempted to start an Eclipse e4 RCP application that I'm developing the following error message is displayed... 当尝试启动我正在开发的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

I think that the problem might be caused by a plugin which isn't defined in the feature.xml file, however I can't figure out which plugin is missing. 我认为问题可能是由feature.xml文件中未定义的插件引起的,但是我无法确定缺少哪个插件。 Using the "Show the plug-in dependency hierarchy" function under the "Dependency Analysis" section of the plugin's MANIFEST.MF file, I've included all of the plugin dependencies in the feature.xml file. 使用插件的MANIFEST.MF文件的“依赖关系分析”部分下的“显示插件依赖关系层次结构”功能,我已将所有插件依赖关系包含在feature.xml文件中。

The product is based on features and is comprised of plugins which I've developed and 3rd party dependencies which are pulled in from Eclipse Orbit. 该产品基于功能,由我开发的插件和从Eclipse Orbit引入的第三方依赖关系组成。 The application is currently being started using the product file in Eclipse. 当前正在使用Eclipse中的产品文件来启动该应用程序。

My questions are... 我的问题是...

  1. Is it possible to get a more verbose error message from the Eclipse RCP application which would indicate the cause of the problem? 是否可以从Eclipse RCP应用程序中获取更详细的错误消息,该错误消息将指示问​​题的原因?
  2. Are there any other troubleshooting steps I can take to get the cause of the the problem? 我还可以采取其他任何故障排除步骤来找出问题的原因吗?
  3. Assuming that problem is caused by a missing plugin, is it possible to identify which plugin is actually missing? 假设问题是由缺少的插件引起的,是否可以确定实际上缺少了哪个插件?

The solution is to use the OSGI console to establish why the bundle can't be loaded. 解决方案是使用OSGI控制台确定为什么无法加载捆绑软件。 This requires a number of steps: 这需要许多步骤:

  1. Add the argument -console 5555 to the product file launch arguments 将参数-console 5555添加到产品文件启动参数中
  2. Connect to the console using either telnet on port 5555 or the console view in the Eclipse IDE 使用端口5555上的telnet或Eclipse IDE中的控制台视图连接到控制台
  3. Find the bundle ID using the command ss <xxx> where <xxxx> is the name of the bundle that won't load or alternatively just use the command ss and find the bundle in the list 使用命令ss <xxx>查找捆绑软件ID,其中<xxxx>是将不加载的捆绑软件的名称,或者仅使用命令ss在列表中查找捆绑软件
  4. Run the command diag <bundle-id> where <bundle-id> is the ID obtained from the previous step. 运行命令diag <bundle-id> ,其中<bundle-id>是从上一步获得的ID。 This should indicate why the bundle failed 这应该表明捆绑失败的原因
  5. If the problem is due to a missing dependency, look for one or more entries with the text Unresolved requirement and the missing plugins to the feature.xml file 如果问题是由于缺少依赖项引起的,请查找一个或多个条目,其内容为文本Unresolved requirement以及feature.xml文件中缺少的插件feature.xml

It might be necessary to repeat steps 2 to 5 multiple times to find all the missing dependencies. 可能有必要重复执行第2步到第5步以查找所有缺少的依赖项。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM