maven构建的项目运行tomcat时报:CharacterEncodingFilter cannot be cast to javax.servlet.Filter

    背景:maven构建项目运行tomcat时,直接报CharacterEncodingFilter cannot be cast to javax.servlet.Filter,不能将编码转换过滤器转换成java识别的过滤器

    原因:tomcat运行时会将tomcat的lib下面的包全部加在入内存中,如果项目中有相同的包,即便是不同版本都不可以会产生冲突

    解决方法:在pom.xml中配置解析jsp和servlet的编译范围scope

                  

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

  	<dependency>
  		<groupId>javax.servlet</groupId>
  		<artifactId>jsp-api</artifactId>
  		<version>2.0</version>
  		<scope>provided</scope>
  	</dependency>
      scope的范围共有六种选择:

                compile:默认值,随项目一直跟随

                provided:希望容器,jdk或者使用者提供

                runtime:只在运行期或测试期有用

                system:需要显示提供依赖的jar包 ,maven仓库不会管理

                test;只会在测试期间有用,发布的项目不带

                import:用在dependency manager中,主要用来导入另外一个pom中的dependency mananger中申明的依赖

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值