使用eclipse插件开发RCP产品时,导出的RCP产品在运行时有可能出现插件引用失败情况,此时可在控制台开启osgi查看插件状态,并进行调试
开启RCP平台中osgi的console,用于查个插件状态:
1、在启动参数中增加 -console,使用脚本启动的在脚本中添加,使用exe启动的在rcp.ini文件中。添加若脚本中存在“&”(linux下后台运行命令),则删除“&”后再添加
2、确定plugins文件夹下存在下列插件,若不存在,则从对应版本eclipse中获取
org.apache.felix.gogo.command
org.apache.felix.gogo.runtime
org.apache.felix.gogo.shell
org.eclipse.equinox.console
启动后在控制台输入回车,会出现OSGI>
此时按下ss会显示当前插件列表
osgi> ss
"Framework is launched."
id State Bundle
0 ACTIVE org.eclipse.osgi_3.9.0.v20130529-1710
1 ACTIVE org.eclipse.equinox.common_3.6.200.v20130402-1505
osgi>
插件的几种状态:
1)INSTALLED:安装完成,本地资源成功加载
2)RESOLVED:依赖关系满足,这个状态意味着这个Bundle要么已经准备好运行,要么是被 停止了。
3)STARTING:Bundle正在被启动,BundleActivator的start()方法已经被调用但是还没有 返回。
4)STOPPING:Bundle正在被停止,BundleActivator的stop()方法已经被调用但是还没有 返回。
5)ACTIVE:Bundle被成功启动并且在运行。
6)UNINSTALLED:bundle被卸载并且无法进入其他状态。
开启RCP平台中osgi的console,用于查个插件状态:
1、在启动参数中增加 -console,使用脚本启动的在脚本中添加,使用exe启动的在rcp.ini文件中。添加若脚本中存在“&”(linux下后台运行命令),则删除“&”后再添加
2、确定plugins文件夹下存在下列插件,若不存在,则从对应版本eclipse中获取
org.apache.felix.gogo.command
org.apache.felix.gogo.runtime
org.apache.felix.gogo.shell
org.eclipse.equinox.console
启动后在控制台输入回车,会出现OSGI>
此时按下ss会显示当前插件列表
osgi> ss
"Framework is launched."
id State Bundle
0 ACTIVE org.eclipse.osgi_3.9.0.v20130529-1710
1 ACTIVE org.eclipse.equinox.common_3.6.200.v20130402-1505
osgi>
观察插件状态其中installed为已经安装但没有使用(无效状态),如果发现有installed状态的插件,手动启动start + 插件编号(id列),根据提示报出的错误情况,去排除错误,如start 1
插件的几种状态:
1)INSTALLED:安装完成,本地资源成功加载
2)RESOLVED:依赖关系满足,这个状态意味着这个Bundle要么已经准备好运行,要么是被 停止了。
3)STARTING:Bundle正在被启动,BundleActivator的start()方法已经被调用但是还没有 返回。
4)STOPPING:Bundle正在被停止,BundleActivator的stop()方法已经被调用但是还没有 返回。
5)ACTIVE:Bundle被成功启动并且在运行。
6)UNINSTALLED:bundle被卸载并且无法进入其他状态。