1 异常描述

最近,当我从 SVN 检出项目并正常配置完 Tomcat 之后,启动项目,总是报出如下异常:

2 异常原因

通过观察上述标记出来的异常描述,我们可以知道:

org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 15

此异常,为:类格式异常:常量池中无效的字节标记:15.

在网上搜索过后,发现遇到这个问题的同学并不少,解决的方法也不尽相同,而且解决问题的方法并不通用,例如 A 和 B 两位同学都遇到了上述的异常,但 A 解决此问题的方法并不一定适用于 B 同学。

想了想,这也正常,从异常的表现层面来看,异常都是相同的,但引起异常的实际原因却不一定相同,例如对于java.lang.UnsupportedClassVersionError这个异常,我们知道可能是由于 JDK 版本不兼容引起的,但实际上也可能是 Maven 版本和 JDK 版本不兼容(前提是 Maven 项目)引起的。

3 解决方法

  • 方法 1:升级 Tomcat 版本到 8 以上

网上很多同学说,此异常为 Tomcat 7 及以下版本的 bug,因此升级到 Tomcat 8 及以上版本之后,此异常就解决啦!对于这种方法,我并没有尝试,之所以在此列出来,仅想作为一个解决异常的可能方法,供大家选择,待验证。

  • 方法 2:修改 Tomcat 的web.xml,添加metadata-complete="true"web-app

对于上述异常,无论是在百度搜索还是通过 Stack Overflow 检索,很多同学都发言称验证了 方法 2 的可行性。我也尝试通过 方法2 来解决此异常,具体方法为:进入 Tomcat 的conf目录,修改web.xmlweb-app头,内容为

<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" metadata-complete="true">

正常情况下,截止到此步骤,上述异常应该就可以解决啦!

But,实际上,当我的 JDK 版本为 1.8 的时候,此异常并没有解决。不过当我将 JDK 切换为 1.6 的时候,此异常解决了。但却报出如下错误,

对于上图所示的错误,我们可以参考「出现 java.lang.UnsupportedClassVersionError 错误的原因及解决方法」这篇文章进行解决。不过让我纠结的是,正常情况下,报出这个错误,程序一般都会挂掉了,但我遇到的情况确是:此错误被忽略,项目启动成功了,囧。

就如我前文所言,对于同一个异常或错误,其产生的原因并不一定相同,因此解决方法也不一定相同。此文是为了给大家解决此类问题提供一个参考,仅做抛砖引玉之用,如果大家有其他的解决方法,欢迎在此分享。


温馨提示:对于上述的异常,我曾经也遇到过,但解决的方法却和此文的两种方法都不相同,具体可以参考「出现 org.apache.tomcat.util.bcel.classfile.ClassFormatException 异常的原因及解决方法」.

出现 org.apache.tomcat.xxx.ClassFormatException: Invalid byte tag in constant pool: 15 异常的原因及解决方法相关推荐

  1. Tomcat报ClassFormatException: Invalid byte tag in constant pool: 19解决方法

    [现象] 严重: Unable to process Jar entry [module-info.class] from Jar [jar:file:/D:/work/demo/target/ROO ...

  2. org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19

    启动项目: 问题描述 严重: Unable to process Jar entry [module-info.class] from Jar [jar:file:/D:/.m2/myboot/org ...

  3. org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 60

    今天发现一个很奇怪的问题:org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constan ...

  4. Invalid byte tag in constant pool: 18

    网上有这个问题得解答,但是解决起来还是很麻烦 aspectj: Invalid byte tag in constant pool: 18 - 知乎 我来说是我得实践 首先这个问题在本地运行一直没问题 ...

  5. JDK8: Invalid byte tag in constant pool: 18

    JDK8: Invalid byte tag in constant pool: 18 问题 org.aspectj.apache.bcel.classfile.ClassFormatExceptio ...

  6. 关于初学者Invalid byte tag in constant pool: 19错误

    关于初学者Invalid byte tag in constant pool: 19错误 求大神解决

  7. ClassFormatException:Invalid byte tag in constant pool: 18

    使用@Aspectj 时遇到的问题 Caused by: org.aspectj.apache.bcel.classfile.ClassFormatException: File: 'com.ls.s ...

  8. Invalid byte tag in constant pool 19

    Invalid byte tag in constant pool 19 问题发生时: 原tomcat版本为8.0 解决方式: 升级tomcat版本为8.5 若原tomcat版本是8.0或者8.0以下 ...

  9. Invalid byte tag in constant pool: 19

    问题 tomcat启动时报错 Invalid byte tag in constant pool: 19 解决办法 办法一:请检查报错提示的jar包路径,删除该jar包对应的文件夹,重新执行打包即可. ...

最新文章

  1. train_test_split()用法
  2. 祝博客园里的所有朋友 新年快乐!
  3. 伪元素写竖线_用伪元素画出太极图
  4. 蛙泳如何找准背部发力的感觉
  5. C++编译预处理:宏定义指令、文件包含指令和条件编译指令
  6. python画菱形的代码_Python打印“菱形”星号代码方法
  7. Json、Gson、Jackson
  8. 在linux下的vsftp的使用
  9. 推荐一个完全免费的高质量素材网站
  10. 如何在Cell里画出虚线?
  11. zz淘宝笑到喷的评价
  12. C#操作word定位光标
  13. win10系统更新服务器太慢了,Win10升级更新速度慢的解决方法
  14. 在蓝图中设置人物动作 教程
  15. r语言中残差与回归值的残差图_R语言基础-数据分析及常见数据分析方法
  16. 电影与幸福感期末答案和平时测试答案
  17. Thonny+Micropython ESP32固件下载后显示没有反应
  18. 疫情期间中国互联网公司亏损排行榜
  19. 趣味数学:解24点游戏小技巧
  20. 本科计算机专业写论文写什么,本科计算机专业论文大纲格式 本科计算机专业论文框架如何写...

热门文章

  1. 安装Tensorflow1.14(cpu)+Kera2.2.5指南
  2. gazebo地图构建
  3. android连接wifi后移动数据,手机连接WiFi的时候,数据网络开着会耗费流量吗
  4. JavaFX 基础介绍
  5. 移动九联unt402H-免拆机-卡刷-刷机固件及教程
  6. 基于51单片机的IC卡智能水表设计
  7. SQL server 海量数据库的查询优化及分页算法(收藏)
  8. 【C语言程序设计】C语言求定积分!腻不腻害!
  9. Pydouyin爬up主下所有视频
  10. Ubunutu编译安装OpenCasCade找不到lXi的解决方案