Today I noticed that Tuckey 4.0.3 and Tomcat 11 do not want to play nicely with each other. If you add Tuckey like described here, Tomcat throws an error during startup:
java.lang.ClassCastException: class org.tuckey.web.filters.urlrewrite.UrlRewriteFilter cannot be cast to class jakarta.servlet.Filter
Any advice on how to make this work again? I’ll add the full stack trace below.
Thanks in advance!
Stack trace:
13-May-2025 15:00:07.483 SEVERE [main] org.apache.catalina.core.StandardContext.filterStart Exception starting filter [UrlRewriteFilter]
java.lang.ClassCastException: class org.tuckey.web.filters.urlrewrite.UrlRewriteFilter cannot be cast to class jakarta.servlet.Filter (org.tuckey.web.filters.urlrewrite.UrlRewriteFilter and jakarta.servlet.Filter are in unnamed module of loader java.net.URLClassLoader @63c12fb0)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:221)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:97)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3865)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4464)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1160)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:716)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:769)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1160)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:716)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:203)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:866)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:759)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)