问题描述
|
我正在寻求实现自定义Valve,并使用meta-inf / context.xml对其进行配置。
但是,目前,在部署过程中解析context.xml时,Tomcat(6.0.32)在我的自定义Valve实现中死于ClassNotFoundException。
我的印象是我遇到了类加载上下文问题,但我不是100%确信我理解这一点。
是否找不到我的类,因为它位于WEB-INF / classes文件中,并且上下文级别的类加载器由于层次结构而无法找到该类?
提前致谢。
解决方法
您无法从webapp类加载器内部加载“ 0”。如果您查看http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html,它将显示可用的类加载器。您必须使用Bootstrap,System或Common类加载器之一,因为在创建各个Webapp类加载器之前要先处理“ 0”定义:必须在Web应用可用之前处理上下文。
将您的Valve单独包装在一个罐子中,然后将其复制到
$CATALINA_HOME/lib
文件夹中,您便已准备就绪。