【问题标题】:Custom Tomcat Valve contained in web app WAR fileWeb 应用程序 WAR 文件中包含的自定义 Tomcat 阀门
【发布时间】:2011-05-26 12:23:39
【问题描述】:

我正在寻找实现自定义 Valve 并使用 META-INF/context.xml 对其进行配置。

目前,当在部署期间解析 context.xml 时,Tomcat (6.0.32) 在我的自定义 Valve 实现中因 ClassNotFoundException 而死。

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

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

提前致谢。

【问题讨论】:

    标签: tomcat6 classloader catalina context.xml tomcat-valve


    【解决方案1】:

    您不能从 webapp 类加载器中加载 Valves。如果您查看http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html,它会显示可用的类加载器。您必须使用 Bootstrap、System 或 Common 类加载器之一,因为 Valve 定义是在创建单独的 webapp 类加载器之前处理的:必须在 webapp 可用之前处理上下文。

    将您的 Valve 单独打包到一个 jar 中并将其复制到 $CATALINA_HOME/lib 文件夹中,您应该已经准备好了。

    【讨论】:

    • 我就是这么想的。谢谢!
    猜你喜欢
    • 2011-04-13
    • 2011-09-28
    • 2018-07-22
    • 2018-08-31
    • 1970-01-01
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多