2011-12-01 81 views
3

我正在嘗試爲RestEasy 2.2.1.GA創建OSGI捆綁包。 但是,我的測試客戶端軟件包中的RestEasy軟件包在嘗試檢測特定類型時失敗。如何在Equinox中調試OSGI類加載器問題?

這個問題是特定於Equinox容器的,但當我試圖弄清楚什麼地方出錯時,我陷入了困境。我無法將問題縮小到導致問題的實際類型。或許一個有問題的類的領域與另一個類型或繼承鏈中的其他類型是不可測的,但是哪一個?

有沒有辦法獲得有關該問題的更多信息?在這一點上,一個沒有發現異常的類並不能幫助我。我如何發現問題的根源?在編譯期間,Eclipse不會抱怨發現有問題的類型,並且所有部署的插件都會在Equinox控制檯中報告爲「已解決」。

回答

3

你需要有一個想法發生了什麼:

  1. 檢查哪來的ClassNotFoundException正在發生的事情。它指出(在大多數情況下),哪個包不能加載類。請注意一些捆綁包,它們是擴展器,它們試圖代表其他捆綁包加載類。

  2. 尋找到類使用Equinox console

  3. 現在,你應該擁有的事情應該如何工作得很好的理解定位。現在,你需要找出爲什麼他們不工作。不幸的是,我找不到檢測解析器工作的好調試工具。您可以嘗試使用廣泛的調試信息推斷您的問題(如果它在解析器中),該信息在啓用時由org.eclipse.osgi記錄。

    What org.eclipse.osgi debug options are available?(可能不是最新的)

    How to enable them

+0

Danail,你認爲是什麼幾乎是唯一的選擇。雖然我不得不承認,我最初的嘗試似乎沒有奏效。無論如何感謝 – mahonya

+1

在OSGi中調試類加載問題要求您對應用程序模塊有良好的理解,並且對所使用的框架有基本的瞭解。這並不容易,但它可以做到:) –