昨日困惑——Tomcat之应用不能启动!


由于我开发的是组件包,简单的说,就是jar,打包之后,我像往常以上上传至服务器,重启Tomcat。可无奈,小猫Tomcat很不配合,应用就是没起来,于是检查日志——catalina.out。
但令人失望的是,几乎什么都没有,就看到这么一个诡异的异常:
12112151_YCg8.jpg
貌似是CRC32校验失败!
第一反应,war包部署的项目有问题。干掉所有webapp下的war包,重启,还是这个错误!此时,我征询各路英雄与我共谋大计,但无人能解此魔咒!
定睛一看,
引用
at java.util.jar.JarInputStream.read(JarInputStream.java:177)
得,原来是jar错误!
重新用Maven打包,部署,重启,失败!
重新用Eclipse导出,打包,部署,重启,失败!
我心想,这是怎么了?!Tomcat没事玩我呢?!换只猫!失败!接近崩溃!错误依旧!
干脆,我也不用jar了,直接上class!部署,重启,失败!这次,catalina.out非常干脆,就说失败!
12112151_rn5P.jpg
太无敌了!!!看来看catalina.out是没指望了,瞅瞅localhost.log!
12112151_q10o.jpg
引用
Caused by: java.lang.ClassFormatError: Truncated class file

12112151_xlyV.jpg
虽说做Java时间不能算很长,但各种诡异的错误也见过了,就是没见过 Caused by: java.lang.ClassFormatError: Truncated class file,顿时无奈了!Truncated - 截断,怎么就截断了?!无奈,疯狂,重新编译,部署,重启,问题依旧,崩溃,多少有点职业挫败感!折腾一下午,就是没反应!!!嘛问题!
突然,想起网管最具实际意义的一句话——重启!
索性,重启本子!!!
就盯上那个ServiceImpl类了,重新编译,部署这个class!!!
12112151_pqJ8.jpg
引用
Caused by: java.lang.ClassFormatError: Illegal UTF8 string in constant pool in class file com/ver/service/Service
这个错误太有乐了!
实现类ServiceImpl正常了,接口Service反而有问题,看看代码。嗯,有中文字符,导致UTF-8编码不对?!
重新编译这个接口,部署,重启,失败!不过这时候冒出来另一个类的异常,跟这个错误类似!!!问题找到了!!!
删除之前部署的class,重新编译,打包jar,部署,重启,成功!!!
内牛马面哪!!!

这是为啥呢?!
如果一开始Tomcat报告Zip错误时,能够指明发生错误的jar文件名,至少定位可以跟准确!当时我部署了一堆jar,还真不好说是自己打包的jar中的那个错误!!!
如果不是
引用
Caused by: java.lang.ClassFormatError: Illegal UTF8 string in constant pool in class file com/ver/service/Service
,我坚决想不出来问题所在!
仔细琢磨,就因为我当时更新了一个网卡驱动!就因为这个,导致系统编译字符编码不正确?!太诡异了!整整一下午,就这样被这个破驱动浪费了!!!
都是驱动惹得祸!!!
本来只是改条SQL,结果,差点把Tomcat给错杀了!!!汗!!!
以后更新驱动,一定老老实实的重启!!!还是网管的名言有实际意义!

转载于:https://my.oschina.net/mohaiyong/blog/221242

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值