问题描述:
使用maven集成tomcat时,之前一直好好的,能正常访问,但是现在突然就不行了。服务能启动,因为是用的dubbo,下面也一直在有写数据,但是url输入地址,打不开,一直转圈,好几分钟都不行一直进不去。
运行窗口有提示一个bug,bug如下:
严重: Unable to process Jar entry [module-info.class] from Jar [jar:file:/D:/maven_repository/javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0.jar!/] for annotations
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19
但是之前也一直有,都没有问题,可以正常运行。
排查过程:
1.首先就是排查了代码,因为代码和git上是同步的,所以,代码没有问题。
2.排查bug,因为运行窗口,有提示严重问题,但是记得之前都一直有这个问题,不影响运行。上网也查询了一下,说是jdk版本太低,或者是tomcat要排除某些jar包。但是maven里集成的tomcat最高直到7. 最后也加了依赖,jar包,试验了一番,最后发现也不是这个问题。恢复依赖。
3.排查设置,发现各种设置都没有变动,一度怀疑是设置里jdk版本问题或者是tomcat的问题,因为运行窗口的bug提示。实验了很久,也不行。恢复设置。
4.之前一直用的debug模式,这次用运行模式,发现好了,url中输入可以使用了。大致找到方向了,是debug模式的问题。
5.回到debug模式,去掉所有断点,发现也成功了,然后查看断点时,发现在interface模块,不小心增加了一个断点,是个菱形图标。
问题解决:
去掉断点,一切正常。
最后总结:
排查了好久,浪费了很多时间,都想删除整个项目,然后从git上重新拉取。好在最后成功找到了问题所在。
使用时,一定要小心,尤其是接口的地方,因为接口的地方打断点是没有任何提示的,也就导致了排查问题了好久。