2014-01-16 42 views
1

我正在使用帶有嵌入式tomcat的eclipse virgo服務器。我想使用我創建的自定義會話管理器,它存在於一個osgi包中。我已將catgi包綁定爲片段主機,並將其配置爲片段。同樣在我的context.xml中,我通過指定完全限定的類名稱來配置會話管理器。嘗試在處女座tomcat中配置自定義會話管理器時獲取ClassNotFoundException

問題是,在啓動時,我的會話管理器出現ClassNotFoundException異常。

我曾嘗試加入我的罐子到lib文件夾和修改的config.ini讓我的罐子加載在啓動時,但沒有幫助

在這種情況下我應該怎麼做,以確保我的課是在啓動時發現。

回答

1

啓用類加載調試幫助,

在配置/ config.ini中添加以下屬性

osgi.debug=configuration/equinox-debug.properties 

在配置/ equinox-debug.properties添加以下屬性,

org.eclipse.osgi/debug=true 
org.eclipse.osgi/debug/loader=true 

現在,當你重新啓動容器時,它打印出試圖加載你的類的BundleClassLoader。我希望我的包可以作爲片段添加到正在加載此類的包中,因此一旦我找出哪個包正在加載類,我只是將它用作片段主機。

2

您可以使用blog中描述的Virgo Shell Commands來分析類加載問題。例如,您可以列出所有可以加載類的軟件包。看看處女座常見問題解答如果需要,如何將導入添加到第三方包。