Я написал специальный клапан Tomcat. (Я использую Tomcat 6.0.24 и Java 1.6) Вот XML элемент, где я объявляю свой клапан:Конфигурация пользовательского клапана Tomcat
<Valve className="mypkg.MyValve" foo="bar"/>
Когда я положил это заявление внутри принимающего элемента Server.xml в. Tomcat вызывает метод setFoo() на моем клапане со значением «bar». Это то, что я хочу.
Однако, когда я помещаю эту же декларацию в META-INF/context.xml моего webapp, внутри элемента Context Tomcat загружает клапан, и клапан работает нормально. Но Tomcat никогда не вызывает метод setFoo(), чтобы предоставить значение «bar», которое требуется клапану.
Я не понимаю, почему Tomcat правильно конфигурирует клапан, указанный в файле server.xml, но не в контексте .xml.
Кто-нибудь знает, как я могу заставить Tomcat правильно настроить мой клапан, когда он объявлен в моем метафоре META-INF/context.xml?
Спасибо, Dan
Это вызывает мой клапан для загрузки и быть правильно настроен на сервере Tomcat:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Valve className="mypkg.MyValve" foo="bar"/>
</Host>
Это вызывает мой клапан для загрузки, но Tomcat не даст ему параметр конфигурации " бар ":
<Context privileged="true" >
<Valve className="mypkg.MyValve" foo="bar"/>
</Context>