2013-06-04 51 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>