尝试在virgo tomcat中配置自定义会话管理器时获取ClassNotFoundException

时间:2014-01-16 20:01:12

标签: java tomcat osgi eclipse-virgo

我正在使用嵌入式tomcat的eclipse处女座服务器。我想使用我创建的自定义会话管理器,它存在于osgi包中。我已经将osgi包配置为片段,其中catalina包是片段主机。同样在我的context.xml中,我通过指定完全限定的类名来配置会话管理器。

问题是在启动时我的会话管理器得到了ClassNotFoundException。

我已经尝试将我的jar添加到lib文件夹并修改config.ini以使我的jar在启动时加载但是没有帮助

在这种情况下,我该怎么做才能确保在启动时找到我的课程。

2 个答案:

答案 0 :(得分:2)

您可以使用此Virgo Shell Commands中所述的blog来分析类加载问题。例如,您可以列出可以加载类的所有包。看看处女座常见问题解答如果需要,如何将导入添加到第三方软件包。

答案 1 :(得分:1)

启用类加载器调试有帮助,

在configuration / config.ini中添加以下属性

osgi.debug=configuration/equinox-debug.properties

在configuration / equinox-debug.properties中添加以下属性

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

现在,当您重新启动容器时,它会打印出试图加载您的类的BundleClassLoader。我希望我的bundle能够作为一个片段添加到正在加载这个类的bundle中,所以一旦我弄清楚哪个bundle正在加载该类,我只是将它用作片段主机。