我正在尝试为 tomcat 实现自定义类加载器。我的第一次尝试产生了一个类转换异常(显然,tomcat 试图将我的加载器转换为 org.apache.catalina.loader.WebappLoader)。很好,我扩展了 WebappLoader 并将 catalina.jar 添加到我的构建路径中。
现在我已经准备好部署(我认为)。我收到此错误:
严重:Catalina.start: LifecycleException: start: : java.lang.NoClassDefFoundError: org/apache/catalina/loader/WebappLoader
Tomcat 自带了 catalina.jar 来运行,所以我有 99.9% 的把握它已经加载到了 tomcat 中。我通过检查 /server/lib/catalina.jar 验证了这一点,它确实包含 apache WebappLoader。此外,正如预期的那样,手动链接另一个 catalina.jar 会产生一大堆问题。
我很困惑。任何提示都会很热门。
谢谢!
更新:有趣的是,同样的事情在 tomcat6 上(扩展 WebappLoader;在 tomcat5.5 上工作)仍然会导致 ClassCastException。在我看来,执行演员表的类是使用与加载我的类的加载器不同的加载器加载的。无论如何,我看不出我将如何控制它,除非在某个地方可能有另一个丢失的 tomcat 配置?对tomcat6有什么想法吗?