validateJarFile jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class


项目环境

Maven、Tomcat7.0.27、jdk1.8.0_111

报这个错误的原因是项目中依赖 javax.servlet-api 包和Tomcat本身的包冲突了,Tomcat本身也有这个包

有人说删除项目中的servlet-api包,但删除项目中的servlet-api依赖包,项目编译都报错

解决办法是修改dependency 的scope

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

Scope 有5个值可以设置

compile: 缺省值,适用于所有阶段,会随着项目一起发布。 
provided: 类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 
runtime: 只在运行时使用,如JDBC驱动,适用运行和测试阶段。 
test: 只在测试时使用,用于编译和运行测试代码。不会随项目发布。 
system: 类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

这里设置provided就是期忘Tomcat提供这个依赖包,问题解决

util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 18

上面问题解决之后又遇到第二个问题

解决办法是 升级tomcat版本,tomcat升级到8,问题解决

优质内容筛选与推荐>>
1、Leetcode 83: Remove Duplicates from Sorted List
2、armadillo: run time error: need lapack
3、Java过滤器Filter使用详解
4、关注:中芯大基金横扫资本市场领域
5、ACM-ICPC 2018 沈阳赛区网络预赛 Call of Accepted


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn