-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 David,
On 8/28/15 2:47 PM, David Wall wrote: > I'm using Tomcat 8.0.23, but wondered if a filter defined in the > Tomcat conf/web.xml as well as defined in my app's WEB-INF/web.xml > file causes the filter to be loaded twice or whether duplicate > filters are ignored? > > If duplicates are ignored, what makes it a "duplicate"? Just the > name, the filter-name and url-pattern combo? The filter-class? I've never looked into this, but I would imagine that Tomcat does no checking for duplicate filter definitions. Otherwise, the above questions are raised :) > Is the filter-name field can sensitive? Almost certainly. > Noted that Tomcat uses a lowercase 's' for it's filter name. > > In Tomcat's conf/web.xml: > > <filter> <filter-name>setCharacterEncodingFilter</filter-name> > <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</ filter-class> > > <init-param> <param-name>encoding</param-name> > <param-value>UTF-8</param-value> </init-param> > <async-supported>true</async-supported> </filter> > > <filter-mapping> > <filter-name>setCharacterEncodingFilter</filter-name> > <url-pattern>/*</url-pattern> </filter-mapping> Note that the above Filter is commented-out by default. > In my webapp's WEB-INF/web.xml: > > <filter> <filter-name>SetCharacterEncodingFilter</filter-name> > <filter-class> > org.apache.catalina.filters.SetCharacterEncodingFilter > </filter-class> <async-supported>true</async-supported> <!-- Enable > if using Vaadin PUSH --> <init-param> > <param-name>encoding</param-name> <param-value>UTF-8</param-value> > </init-param> </filter> > > <filter-mapping> > <filter-name>SetCharacterEncodingFilter</filter-name> > <url-pattern>/*</url-pattern> </filter-mapping> > > When using Atmosphere with Vaadin PUSH, I occasionally get an > exception that indicates an issue with async operations, and it > shows my filter twice in the stack trace: > > *java.lang.IllegalStateException: A filter or servlet of the > current chain does not support asynchronous operations.** * > at > org.apache.catalina.connector.Request.startAsync(Request.java:1610) Boy, > it would be nice if Tomcat told you which Filter of or Servlet of the current change didn't support asynchronous operations. I don't immediately see a good way of getting that information from the Request object. :( - -chris -----BEGIN PGP SIGNATURE----- Comment: GPGTools - http://gpgtools.org iQIcBAEBCAAGBQJV4LYQAAoJEBzwKT+lPKRYjMoQAJuw/bu4Efmw/Mc0tm6hXaaU fJBSSsfZJfPGzahCvMGRTciTEe/E7cjsSIHgkdZKy1UUYSx2mnLZNTkiMaQRu2Sg XmmN6nzKC7dtNPrYGgkN+RqbUJXjpeO0vV6RLJHdzGcQ9vQ4409t733QQuFbuzeS DfcCCnSiwK8i4APQyuQWpuT4Th/kyehZfp4mtlIQHN6BsmekRH6VUIHI9rRajPgF zUtPEXnqdlXOD5B2dtRDePQNBVIO5s8Es+GzD68L2m/XseIt6WxbHUYe8lGcKp6g 7O7LBfe+VhgCaIsoC/aPJ9hyA75z1p/O1h8Rcb8ft4G8BYdvVYQl6Dc76XzYdVYy RdSu5FaGBRsCAromAJ0/ThSa2oKPMcrINUkMDdoMGE12Rr5+d/QVO6jMlpq0MgqY PkXox+eB7pzcFFUkU4wWDOe3xqVHgMWW4E3dop+tfCHti9HDhfcgUNP6ch7MAEIm 8+3iZ8DKeyqmvp1TQn9HQcM/I+or0qE3GvQsYZR00Z4C7Rp4/QdmMMhZwNoqgnHw kCxrIgCA2KPeEBYVkTsx9LG0P8dzitDps3EFLTsETSygfd1JmrCPx+8PlrAgjkcM 7FnrJAHX1fZ28EoNMmdf8f0FJ3InmBB9APO3Kw+YbayJeZxuV4gg/dAPZT3PGI0p RYZ2Ubhc8zpwgOTjEHMC =DJRR -----END PGP SIGNATURE----- --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org