Spring Filter ClassCastException when running project on Tomcat

slhddn

I am getting following error when I try to run my project on Tomcat. It was working before but I updgraded jackson version to 1.9.13 from 1.9.7 and I was not able to run the project anymore after updating maven dependencies. I tried to downgrade Jackson to 1.9.7 but no chance.

SEVERE: Exception starting filter txTrackFilter
java.lang.ClassCastException: org.springframework.web.filter.DelegatingFilterProxy cannot be cast to javax.servlet.Filter
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.startup.Embedded.start(Embedded.java:825)
at org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMojo.java:558)
at org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:255)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Aug 3, 2014 12:11:02 AM org.apache.catalina.core.StandardContext start
SEVERE: Error filterStart

I have checked all answers related to this problem. They all say that I need to define scope as provided and I already have. Here is my servlet-api dependency definition.

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

I can't find any servlet-api dependency under any of dependency in my pom.xml. Here is all my pom.xml.

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.stg</groupId>
<artifactId>stg</artifactId>
<name>STG</name>
<packaging>war</packaging>
<version>1.0.0-BUILD-SNAPSHOT</version>
<properties>
    <java-version>1.6</java-version>
    <org.springframework-version>3.1.1.RELEASE</org.springframework-version>
    <org.aspectj-version>1.6.10</org.aspectj-version>
    <org.slf4j-version>1.6.6</org.slf4j-version>
    <hibernate.version>4.1.6.Final</hibernate.version>
    <jackson.version>1.9.13</jackson.version>
</properties>
<dependencies>
    <!-- Spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${org.springframework-version}</version>
        <exclusions>
            <!-- Exclude Commons Logging in favor of SLF4j -->
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${org.springframework-version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>${org.springframework-version}</version>
    </dependency>
    <!-- Hibernate -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>${hibernate.version}</version>
    </dependency>

    <!-- Jackson -->
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>${jackson.version}</version>
    </dependency>

    <!-- Others -->
    <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
        <version>1.4</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.25</version>
    </dependency>

    <!-- AspectJ -->
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>${org.aspectj-version}</version>
    </dependency>

    <!-- Logging -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${org.slf4j-version}</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${org.slf4j-version}</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${org.slf4j-version}</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.15</version>
        <exclusions>
            <exclusion>
                <groupId>javax.mail</groupId>
                <artifactId>mail</artifactId>
            </exclusion>
            <exclusion>
                <groupId>javax.jms</groupId>
                <artifactId>jms</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.sun.jdmk</groupId>
                <artifactId>jmxtools</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.sun.jmx</groupId>
                <artifactId>jmxri</artifactId>
            </exclusion>
        </exclusions>
        <scope>runtime</scope>
    </dependency>

    <!-- @Inject -->
    <dependency>
        <groupId>javax.inject</groupId>
        <artifactId>javax.inject</artifactId>
        <version>1</version>
    </dependency>

    <!-- Servlet -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>

    <!-- Test -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.7</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
        <version>1.0.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>4.3.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.3.2</version>
    </dependency>

    <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.6</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-batch</artifactId>
        <version>1.0.0.RELEASE</version>
        <exclusions>
            <exclusion>
                <groupId>org.codehaus.jettison</groupId>
                <artifactId>jettison</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>1.0.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>1.0.0.RELEASE</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <artifactId>maven-eclipse-plugin</artifactId>
            <version>2.9</version>
            <configuration>
                <additionalProjectnatures>
                    <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
                </additionalProjectnatures>
                <additionalBuildcommands>
                    <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
                </additionalBuildcommands>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <compilerArgument>-Xlint:all</compilerArgument>
                <showWarnings>true</showWarnings>
                <showDeprecation>true</showDeprecation>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.2.1</version>
            <configuration>
                <mainClass>org.test.int1.Main</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>

Here is mvn dependency:tree of my project.

[INFO] +- org.springframework:spring-context:jar:3.1.1.RELEASE:compile
[INFO] |  +- org.springframework:spring-aop:jar:3.1.1.RELEASE:compile
[INFO] |  |  \- aopalliance:aopalliance:jar:1.0:compile
[INFO] |  +- org.springframework:spring-beans:jar:3.1.1.RELEASE:compile
[INFO] |  +- org.springframework:spring-core:jar:3.1.1.RELEASE:compile
[INFO] |  +- org.springframework:spring-expression:jar:3.1.1.RELEASE:compile
[INFO] |  \- org.springframework:spring-asm:jar:3.1.1.RELEASE:compile
[INFO] +- org.springframework:spring-webmvc:jar:3.1.1.RELEASE:compile
[INFO] |  +- org.springframework:spring-context-support:jar:3.1.1.RELEASE:compile
[INFO] |  \- org.springframework:spring-web:jar:3.1.1.RELEASE:compile
[INFO] +- org.springframework:spring-orm:jar:3.1.1.RELEASE:compile
[INFO] |  +- org.springframework:spring-jdbc:jar:3.1.1.RELEASE:compile
[INFO] |  \- org.springframework:spring-tx:jar:3.1.1.RELEASE:compile
[INFO] +- org.hibernate:hibernate-entitymanager:jar:4.1.6.Final:compile
[INFO] |  +- org.jboss.logging:jboss-logging:jar:3.1.0.GA:compile
[INFO] |  +- org.hibernate:hibernate-core:jar:4.1.6.Final:compile
[INFO] |  |  \- antlr:antlr:jar:2.7.7:compile
[INFO] |  +- org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec:jar:1.0.0.Final:compile
[INFO] |  +- dom4j:dom4j:jar:1.6.1:compile
[INFO] |  +- org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.1.Final:compile
[INFO] |  +- org.javassist:javassist:jar:3.15.0-GA:compile
[INFO] |  \- org.hibernate.common:hibernate-commons-annotations:jar:4.0.1.Final:compile
[INFO] +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
[INFO] |  \- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
[INFO] +- commons-dbcp:commons-dbcp:jar:1.4:compile
[INFO] |  \- commons-pool:commons-pool:jar:1.5.4:compile
[INFO] +- mysql:mysql-connector-java:jar:5.1.25:compile
[INFO] +- org.aspectj:aspectjrt:jar:1.6.10:compile
[INFO] +- org.slf4j:slf4j-api:jar:1.6.6:compile
[INFO] +- org.slf4j:jcl-over-slf4j:jar:1.6.6:runtime (scope not updated to compile)
[INFO] +- org.slf4j:slf4j-log4j12:jar:1.6.6:runtime
[INFO] +- log4j:log4j:jar:1.2.15:runtime
[INFO] +- javax.inject:javax.inject:jar:1:compile
[INFO] +- javax.servlet:javax.servlet-api:jar:3.1.0:provided
[INFO] +- junit:junit:jar:4.7:test
[INFO] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:1.0.0.RELEASE:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter-aop:jar:1.0.0.RELEASE:compile
[INFO] |  |  \- org.aspectj:aspectjweaver:jar:1.7.4:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter-jdbc:jar:1.0.0.RELEASE:compile
[INFO] |  |  \- org.apache.tomcat:tomcat-jdbc:jar:7.0.52:compile
[INFO] |  |     \- org.apache.tomcat:tomcat-juli:jar:7.0.52:compile
[INFO] |  +- org.springframework.data:spring-data-jpa:jar:1.5.1.RELEASE:compile
[INFO] |  |  \- org.springframework.data:spring-data-commons:jar:1.7.1.RELEASE:compile
[INFO] |  \- org.springframework:spring-aspects:jar:4.0.3.RELEASE:compile
[INFO] +- org.apache.httpcomponents:httpcore:jar:4.3.1:compile
[INFO] +- org.apache.commons:commons-lang3:jar:3.3.2:compile
[INFO] +- commons-codec:commons-codec:jar:1.6:compile
[INFO] +- org.springframework.boot:spring-boot-starter-batch:jar:1.0.0.RELEASE:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:1.0.0.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot:jar:1.0.0.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-autoconfigure:jar:1.0.0.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:1.0.0.RELEASE:compile
[INFO] |  |  |  +- org.slf4j:jul-to-slf4j:jar:1.7.6:compile
[INFO] |  |  |  +- org.slf4j:log4j-over-slf4j:jar:1.7.6:compile
[INFO] |  |  |  \- ch.qos.logback:logback-classic:jar:1.1.1:compile
[INFO] |  |  |     \- ch.qos.logback:logback-core:jar:1.1.1:compile
[INFO] |  |  \- org.yaml:snakeyaml:jar:1.13:runtime
[INFO] |  +- org.hsqldb:hsqldb:jar:2.3.2:compile
[INFO] |  \- org.springframework.batch:spring-batch-core:jar:2.2.5.RELEASE:compile
[INFO] |     +- org.springframework.batch:spring-batch-infrastructure:jar:2.2.5.RELEASE:compile
[INFO] |     |  \- org.springframework.retry:spring-retry:jar:1.0.2.RELEASE:compile
[INFO] |     \- com.thoughtworks.xstream:xstream:jar:1.3:compile
[INFO] |        \- xpp3:xpp3_min:jar:1.1.4c:compile
[INFO] \- org.springframework.boot:spring-boot-starter-web:jar:1.0.0.RELEASE:compile
[INFO]    +- org.springframework.boot:spring-boot-starter-tomcat:jar:1.0.0.RELEASE:compile
[INFO]    |  +- org.apache.tomcat.embed:tomcat-embed-core:jar:7.0.52:compile
[INFO]    |  +- org.apache.tomcat.embed:tomcat-embed-el:jar:7.0.52:compile
[INFO]    |  \- org.apache.tomcat.embed:tomcat-embed-logging-juli:jar:7.0.52:compile
[INFO]    \- com.fasterxml.jackson.core:jackson-databind:jar:2.3.2:compile
[INFO]       +- com.fasterxml.jackson.core:jackson-annotations:jar:2.3.0:compile
[INFO]       \- com.fasterxml.jackson.core:jackson-core:jar:2.3.2:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

I spent several hours on this problem but I got stuck. Even if I disable filtering, I am getting another class cast exception related to this servlet-api scope problem. But I can't find any servlet-api jar. Any help is highly appreciated.

Thanks in advance.

slhddn

Finally I got it working.

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-batch</artifactId>
        <version>1.0.0.RELEASE</version>
        <exclusions>
            <exclusion>
                <groupId>org.codehaus.jettison</groupId>
                <artifactId>jettison</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>1.0.0.RELEASE</version>
    </dependency>

There is tomcat package under these dependencies and servlet package in it. I only use them for com.fasterxml.jackson package. Shame on me. I removed these two everything is back to normal. Thanks Karthikeyan for suggestion to check maven dependency folders.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Spring Filter ClassCastException when running project on Tomcat

From Dev

ClassCastException when running code in SBT

From Dev

Spring Boot / Security - Cannot customize security when running on embedded Tomcat

From Dev

Spring Boot / Security - Cannot customize security when running on embedded Tomcat

From Dev

JSF components are not rendered when running Spring Boot app on Eclipse Tomcat

From Dev

Spring Java project not starting Tomcat when importing jar with infinite loop

From Dev

Spring Boot project with static content generates 404 when running jar

From Dev

Spring Boot project with static content generates 404 when running jar

From Dev

Spring - project not running but no error

From Dev

Tomcat CORS filter and Spring Security

From Dev

websockets with Tomcat 8 and Spring 4 ClassCastException before handler is invoked

From Dev

illegalargumentexception - Project running on Netbeans but not on Tomcat as War file

From Dev

Running a duplicate Java Project on Tomcat 7

From Dev

Error running Tomcat8 with project JSF?

From Dev

java.lang.LinkageError: ClassCastException: in spring MVC project

From Dev

TestNG problems when running the project

From Dev

NoClassDefFoundError when running android project

From Dev

Running multiple spring boot web app on tomcat

From Dev

Spring boot web app not running on tomcat 9

From Dev

Spring security not calling my custom authentication filter when running JUnit tests

From Dev

JavaMail stopped working when running on Tomcat server

From Dev

RuntimeEnvironmentPropertiesConfigurer issue - when running broadleaf admin on tomcat

From Dev

Testing in tomcat when it is running multiple applications

From Dev

RuntimeEnvironmentPropertiesConfigurer issue - when running broadleaf admin on tomcat

From Dev

404 error when running tomcat on eclipse

From Dev

migration Spring project from tomcat 7 to tomcat 8

From Dev

ServletException error running a Spring project on STS

From Dev

Exception while running Spring boot cassandra project

From Dev

Get ClassCastException when using multiple services from spring boot restcontroller

Related Related

  1. 1

    Spring Filter ClassCastException when running project on Tomcat

  2. 2

    ClassCastException when running code in SBT

  3. 3

    Spring Boot / Security - Cannot customize security when running on embedded Tomcat

  4. 4

    Spring Boot / Security - Cannot customize security when running on embedded Tomcat

  5. 5

    JSF components are not rendered when running Spring Boot app on Eclipse Tomcat

  6. 6

    Spring Java project not starting Tomcat when importing jar with infinite loop

  7. 7

    Spring Boot project with static content generates 404 when running jar

  8. 8

    Spring Boot project with static content generates 404 when running jar

  9. 9

    Spring - project not running but no error

  10. 10

    Tomcat CORS filter and Spring Security

  11. 11

    websockets with Tomcat 8 and Spring 4 ClassCastException before handler is invoked

  12. 12

    illegalargumentexception - Project running on Netbeans but not on Tomcat as War file

  13. 13

    Running a duplicate Java Project on Tomcat 7

  14. 14

    Error running Tomcat8 with project JSF?

  15. 15

    java.lang.LinkageError: ClassCastException: in spring MVC project

  16. 16

    TestNG problems when running the project

  17. 17

    NoClassDefFoundError when running android project

  18. 18

    Running multiple spring boot web app on tomcat

  19. 19

    Spring boot web app not running on tomcat 9

  20. 20

    Spring security not calling my custom authentication filter when running JUnit tests

  21. 21

    JavaMail stopped working when running on Tomcat server

  22. 22

    RuntimeEnvironmentPropertiesConfigurer issue - when running broadleaf admin on tomcat

  23. 23

    Testing in tomcat when it is running multiple applications

  24. 24

    RuntimeEnvironmentPropertiesConfigurer issue - when running broadleaf admin on tomcat

  25. 25

    404 error when running tomcat on eclipse

  26. 26

    migration Spring project from tomcat 7 to tomcat 8

  27. 27

    ServletException error running a Spring project on STS

  28. 28

    Exception while running Spring boot cassandra project

  29. 29

    Get ClassCastException when using multiple services from spring boot restcontroller

HotTag

Archive