• java.lang.ClassCastException: org.springframework.web.filter.CharacterEncodingFilter cannot be cast


    严重: Exception starting filter encodingFilter
    java.lang.ClassCastException: org.springframework.web.filter.CharacterEncodingFilter 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:133)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    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:108)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)

    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.Java:356)

    出现场景:在进行spring+SpringMVC+mybatis的整合问题时候,出现了包的冲突,对没错的,是包的冲突,cast是加的意思,这里是说org.springframework.web.filter.CharacterEncodingFilter不能与javax.servlet.Filter相容,他们实现的功能都一样,放在一起就出现了冲突。

    解决思路:花了三天时间来想这个问题,之前在网上找的答案也是这样解释的,都说要加

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

    </dependency>

    但自己加入之后,并不能解决问题,当时就怀疑问题到底是不是处在这里。面对一堆不认识的英文,整个人就懵逼了。由于是从外面导入进来的项目,总是怀疑是项目的问题,所以尝试过导入其他的ssm项目,尝试过新建项目重新写代码,尝试过用eclipse和myeclipse两种工具对比测试......尝试了很多方案,最终还是不能解决问题。回过头,再来看包冲突的问题,来找这两个包到底在哪里,最后发现了是spring包和javaee包里面的问题,尝试过删除javaee里面filter,但又有新的问题出现。在想如何将javaee里面的filter给屏蔽掉,最后还是尝试来看看上面的<scope>,尝试用在了javaee的配置里,最后通过了。下面是网上对<scope>对的解释:

    这样问题就解决了。

    总结,遇到问题,一定要冷静,分析问题到底出在哪里,不要畏惧问题,对问题的畏惧只会让自己偏离了正道,让解决问题的时间变得更长了。认定一个问题了,不管有多难,一定能找到解决的方案,只要知道自己的问题是什

  • 相关阅读:
    20191211 HNOI2017 模拟赛 问题A
    20191211 HNOI2017模拟赛 C题
    BZOJ 3681 Arietta
    netcore3.1中的Json操作
    netcore2.2出现的新特性HealthCheck
    MVC为什么要使用TagHelper?
    psql备份csv文件
    DataAnnotations的使用及细节处理
    记录一次mac安装node遇到的错误
    记录一次netcore3.0 code first使用迁移命令报错问题
  • 原文地址:https://www.cnblogs.com/Eilen/p/6641500.html
Copyright © 2020-2023  润新知