2011-05-26 59 views
4

我期待实现自定义Valve并使用META-INF/context.xml对其进行配置。Web应用程序WAR文件中包含的自定义Tomcat阀门

尽管如此,在部署期间解析context.xml时,Tomcat(6.0.32)在我的自定义Valve实现上死于ClassNotFoundException。

我的印象是,我遇到了一个类加载上下文问题,我不是100%确定我理解它。

是不是我的类找不到,因为它位于WEB-INF/classes文件中,而上下文级别类加载器由于层次结构而无法找到类?

在此先感谢。

回答

7

您无法从webapp类加载器中加载Valve。如果你看看http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html,它会显示可用的类加载器。您必须使用Bootstrap,System或Common类加载器之一,因为在创建单个webapp类加载器之前处理了Valve定义:在webapp可用之前,必须先处理Context。

将您的阀门打包在一个罐子里,并将其复制到$CATALINA_HOME/lib文件夹中,并且应该全部设置好。

+0

这就是我的想法。谢谢! – 2011-05-26 13:42:48

相关问题