2016-01-21 34 views
0

我正在嘗試launch the Felix OSGI Framework使用AutoProcessor.process(...)加載我的OSGI包。我已經使用felix.auto.deploy.dir屬性指定了包含捆綁的目錄。從Felix框架獲取記錄/調試信息?

當該目錄爲空時,我根本沒有收到Felix的消息。當它中有捆綁時,我得到一個不太有用的堆棧轉儲。

如何告訴Felix框架輸出日誌/調試信息?我真正想要的是AutoProcessor告訴我發生堆棧轉儲時它正在處理哪個包。

我試過將felix.log.level設置爲4;我曾嘗試設置一個org.osgi.framework.FrameworkListener和一個org.osgi.framework.BundleListener;並且我已經嘗試用felix.log.logger指定Logger;但菲利克斯仍頑固地沉默寡言。

那麼祕密把戲是什麼?

+0

我開始從'felix.auto.deploy.dir'中逐個刪除捆綁包。但問題依然存在。調試器顯示每次都發生同樣的 - 未報告的錯誤。所以我得出結論說這不是我使用的捆綁包的問題。我搜索了這個錯誤(我認爲'BundleEvent。(...)is missing')並找到了解決方案:我在依賴項中有兩個'org.osgi.core'(我想要的和'org包含的一個' .apache.felix.prefs'),所以我刪除了一個,然後全部都是OK。那麼,其實我進入下一個問題,但這是一個程序員的生活:-) –

+0

雖然我沒有回答原來的問題。 –

回答

2

除去上面提到的重複org.osgi.core束後,我試圖再次建立

  1. 一個org.osgi.framework.FrameworkListener
  2. 一個org.osgi.framework.BundleListener,和
  3. 一個org.osgi.framework.ServiceListener

在我創建的框架。所有3種偵聽器類型都被觸發,並且我能夠檢查並記錄作爲參數傳入的事件的信息。

+0

你是怎麼知道你有兩個OSGI核心包的? – treefrog

+0

@treefrog他們有不同的版本號:我有明確要求作爲依賴關係的核心,還有另一個作爲別的依賴項自動輸入。 –