I've been looking for a way to modify my request header. I found that
implementing javax.servlet.Filter is the way to go. However, I noticed that
once after I got my Filter implementation working, my Valve is no longer
reached (I created my own Valve subclassing
org.apache.catalina.valves.ValveBase). I've determined this because I've
placed breakpoints in the Filter.doFilter(...) method and Valve.invoke(...)
methods, and only the breakpoint in the Filter class implementation is
caught.

My context XML for my web application is:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/my-valve"
    docBase="C:\my-valve\dist"
    reloadable="true">
    <Valve className="vang.jake.tomcat.valve.ModifyHeaderValve" />
</Context>

My web.xml for my web application is:

     <filter>
        <filter-name>simpleFilter</filter-name>
        <filter-class>vang.jake.servlet.filter.SimpleFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>simpleFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

Could someone clarify if the use of one (filter) precludes the use of the
other (valve)? If so, why? If not, why is my valve never reached?

Thanks.

Reply via email to