我寫了一個定製的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>