【问题标题】:Getting a ClassNotFoundException when trying to configure a custom session manager in virgo tomcat尝试在 virgo tomcat 中配置自定义会话管理器时出现 ClassNotFoundException
【发布时间】:2014-01-16 20:01:11
【问题描述】:

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

问题是在启动时我的会话管理器出现 ClassNotFoundException。

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

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

【问题讨论】:

    标签: java tomcat osgi eclipse-virgo


    【解决方案1】:

    您可以使用Virgo Shell Commands 中所述的blog 来分析类加载问题。例如,您可以列出所有可以加载类的包。查看 Virgo 常见问题解答 如果需要,如何将导入添加到 3rd 方捆绑包。

    【讨论】:

      【解决方案2】:

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

      在 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。我希望将我的包作为片段添加到正在加载此类的包中,因此一旦我弄清楚哪个包正在加载该类,我只需将其用作片段主机。

      【讨论】:

        猜你喜欢
        • 2012-01-30
        • 2015-11-21
        • 2023-04-07
        • 1970-01-01
        • 1970-01-01
        • 2012-12-18
        • 1970-01-01
        • 2017-09-02
        • 1970-01-01
        相关资源
        最近更新 更多