Я написал специальный клапан Tomcat.(Я использую Tomcat 6.0.24 и Java 1.6) Вот элемент XML, в котором я объявляю свой клапан:
<Valve className="mypkg.MyValve" foo="bar"/>
Когда я помещаю это объявление внутри элемента Host server.xml.Tomcat вызывает метод setFoo () для моего клапана со значением "bar".Это то, чего я хочу.
Однако, когда я помещаю это же объявление в META-INF / context.xml моего веб-приложения, внутри элемента Context, Tomcat загружает клапан, и клапан работает нормально.Но Tomcat никогда не вызывает метод setFoo () для предоставления значения "bar", в котором нуждается клапан.
Я не понимаю, почему Tomcat правильно настраивает клапан, объявленный в server.xml, но не в context.xml.
Кто-нибудь знает, как я могу заставить Tomcat правильно настроить мой клапанкогда он объявлен в 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>