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