2013-06-04 48 views
0

假设我有这个OSGI Equinox应用程序,并且我想知道bundle已加载,以及它们的状态。要做到这一点,我想到了运行控制台,但我不知道如何做到这一点。在恶劣环境下运行OSGi Equinox控制台

的应用有以下文件夹结构:

workspace/ 
config/ 
features/ 
bundles/ 

config/目录包含一个config.ini文件以及错误日志文件,并用插件符号名称命名的一些文件夹。

我试图从主(主)文件夹

java -jar bundles/org.eclipse.osgi_3.6.0.v20100517.jar -console -consoleLog 

运行,但我得到的是一个

的OSGi>会议2013年6月4日08:57:53.023 ----------------------------------------------- eclipse.buildId =未知java.version = 1.7.0_17 java.vendor = Oracle Corporation BootLoader常量:OS = win32,ARCH = x86_64,WS = win32, NL = en_US命令行参数:-console -consoleLog

!ENTRY org.eclipse.osgi 4 0 2013-06-04 08:57:53.512!MESSAGE 应用程序错误!STACK 1 java.lang.IllegalStateException:无法通过 获取应用程序服务。确保已解析并启动org.eclipse.core.runtime 软件包(请参阅config.ini)。 在org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:74) 在org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) 的组织。 eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 在org.eclipse.core.runtime.adaptor.EclipseStarter.main(EclipseStarter.java:150)

这产生了一个问题知道config.ini文件应该放在哪里。如上所述,我知道在config/有一个,虽然我知道这个RCP应用程序使用该文件作为它的配置文件,但我不太确定可以说我已经启动的控制台是一样的。为什么?因为我已经添加了以下行bundles/config.ini无济于事:

osgi.bundles=\ 
[email protected]:start \ 
[email protected]:start, \ 
[email protected]:start, \ 
[email protected]:start, \ 
[email protected]:start, \ 
[email protected]:start, \ 
[email protected]:start, \ 
[email protected]:start, \ 
[email protected] 


osgi.startLevel=10 
osgi.bundles.defaultStartLevel=5 

任何线索,欢迎选购。提前致谢。

+0

您可以添加config.ini的其余部分吗?我很想看到关于运行级别的任何内容。另外,我有兴趣看到日志的其余部分。 – ljgw

+0

我已编辑原始帖子并提供额外信息。 –

回答

1

根据config.ini的其余部分,我发现实际启动org.eclipse.core.runtime两次:一次是@ 5:开始,一次是(再次)运行级别5,基于默认的开始级别。

您可以尝试删除最后的[email protected]并将第一个更改为runlevel 1? ([email protected]:start)(也许runlevel 2也可以)。

这样,您确保core.runtime首先启动。

+0

我试过了,但问题仍然存在(完全相同的错误信息)。 –

2

如果使用普通的OSGi(而不是与Eclipse应用程序)的工作,你应该添加以下到您的config.ini:

eclipse.ignoreApp=true 
osgi.noShutdown=true 

另外,如果你不能确定哪些配置。使用ini,您可以通过提供cmd arg明确定义路径:

java -jar .... -configuration <location of config.ini>