我写了一个定制的Tomcat阀门。 (我使用Tomcat 6.0.24和Java 1.6)这里就是我宣布我的阀的XML元素:定制Tomcat阀门配置
<Valve className="mypkg.MyValve" foo="bar"/>
当我把server.xml中的Host元素里面这个声明。 Tomcat使用值“bar”在我的阀上调用setFoo()方法。这就是我想要发生的事情。
但是,当我在web应用程序的META-INF/context.xml中放置相同的声明时,在Context元素中,Tomcat加载阀门,阀门运行良好。但Tomcat从未调用setFoo()方法来提供阀所需的“bar”值。
我不明白为什么Tomcat正确地配置了server.xml中声明的阀,但没有在context.xml中声明。
是否有人知道我的Tomcat在我的webapp的META-INF/context.xml中声明时如何正确配置阀门?
感谢, 丹
这导致我的阀来加载和正确的Tomcat的配置:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Valve className="mypkg.MyValve" foo="bar"/>
</Host>
这导致我的阀加载,但Tomcat将不给它的配置参数“ bar“:
<Context privileged="true" >
<Valve className="mypkg.MyValve" foo="bar"/>
</Context>