`

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

阅读更多
昨天下午,我一直在调试程序,由于本地环境等等局限性问题,我只能在测试服务器上进行部署测试。期间,我的HP NoteBook提示我有更新驱动,我随即确认更新,继续修改我的BUG。
由于我开发的是组件包,简单的说,就是jar,打包之后,我像往常以上上传至服务器,重启Tomcat。可无奈,小猫Tomcat很不配合,应用就是没起来,于是检查日志——catalina.out。
但令人失望的是,几乎什么都没有,就看到这么一个诡异的异常:

貌似是CRC32校验失败!
第一反应,war包部署的项目有问题。干掉所有webapp下的war包,重启,还是这个错误!此时,我征询各路英雄与我共谋大计,但无人能解此魔咒!
定睛一看,
引用
at java.util.jar.JarInputStream.read(JarInputStream.java:177)
得,原来是jar错误!
重新用Maven打包,部署,重启,失败!
重新用Eclipse导出,打包,部署,重启,失败!
我心想,这是怎么了?!Tomcat没事玩我呢?!换只猫!失败!接近崩溃!错误依旧!
干脆,我也不用jar了,直接上class!部署,重启,失败!这次,catalina.out非常干脆,就说失败!

太无敌了!!!看来看catalina.out是没指望了,瞅瞅localhost.log!

引用
Caused by: java.lang.ClassFormatError: Truncated class file


虽说做Java时间不能算很长,但各种诡异的错误也见过了,就是没见过Caused by: java.lang.ClassFormatError: Truncated class file,顿时无奈了!Truncated - 截断,怎么就截断了?!无奈,疯狂,重新编译,部署,重启,问题依旧,崩溃,多少有点职业挫败感!折腾一下午,就是没反应!!!嘛问题!
突然,想起网管最具实际意义的一句话——重启!
索性,重启本子!!!
就盯上那个ServiceImpl类了,重新编译,部署这个class!!!

引用
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给错杀了!!!汗!!!
以后更新驱动,一定老老实实的重启!!!还是网管的名言有实际意义!

  • 大小: 155.5 KB
  • 大小: 86.8 KB
  • 大小: 72.9 KB
  • 大小: 71.4 KB
  • 大小: 123.6 KB
3
5
分享到:
评论
5 楼 kingj 2012-06-26  
报CRC32错误一般是因为class校验失败,我怀疑你在编译class文件的时候采用了不同的编译器版本导致编译的类版本错误
4 楼 qq123zhz 2012-01-09  
Caused by: java.lang.ClassFormatError: Illegal UTF8 string in constant pool in class file com/ver/service/Service

这个我也遇到了
3 楼 newwpp 2010-12-23  
老大威武
2 楼 snowolf 2010-07-29  
hareamao 写道
引用
Caused by: java.lang.ClassFormatError: Truncated class file

往往是java版本冲突,服务器的java版本,tomcat版本跟你开发环境的一致么?

都是一样的!装驱动前正常,装完驱动异常,重启后又正常!!!
我当时针无奈了!
1 楼 hareamao 2010-07-29  
引用
Caused by: java.lang.ClassFormatError: Truncated class file

往往是java版本冲突,服务器的java版本,tomcat版本跟你开发环境的一致么?

相关推荐

    架构解析——Tomcat

    《架构解析——Tomcat》是刘光瑞撰写的一本深入探讨Tomcat的书籍,共380页,采用PDF格式,包含索引书签目录,方便读者...通过深入学习,读者不仅可以掌握Tomcat的使用,还能提升对Java Web技术的整体理解和应用能力。

    绿色——TOMCAT 6.0

    【绿色——TOMCAT 6.0】 TOMCAT 6.0是一款广泛使用的开源Java Servlet容器,由Apache软件基金会的Tomcat项目开发并维护。它遵循Java EE规范,特别是Servlet和JSP标准,为开发者提供了轻量级的Web应用程序托管环境。...

    web学习笔记 —— tomcat

    在Tomcat配置部分,可能详细讲解了如何安装Tomcat,如何在Windows、Linux等不同操作系统上启动和停止服务器,以及如何配置Tomcat以适应不同的Web应用需求。 总的来说,掌握Tomcat的使用和配置是Java Web开发者的...

    解压版tomcat 解压即用哦!!!

    "指的是这个版本的Tomcat是预编译且打包好的,用户无需进行安装步骤,直接解压缩文件到本地磁盘,然后按照一定的配置步骤,就能启动并运行Tomcat服务器。这种方式非常适合开发者在本地进行快速测试或开发环境的搭建...

    tomcat7linux版(免费!!!)

    通过以上步骤,你就能在Linux环境下成功安装并运行Tomcat7了。在运维过程中,熟悉Linux命令行操作、了解服务器性能监控和问题排查方法,以及对Java Web应用开发有深入理解,都将对工作大有裨益。

    Java开发必备工具——你想要的全套开发工具1——Tomcat6和7

    Java开发是软件行业中不可或缺的一部分,尤其对于Web应用的构建,Tomcat服务器扮演着至关重要的角色。本资源包“Java开发必备工具——你想要的全套开发工具1——Tomcat6和7”聚焦于这两个版本的Tomcat,它们在过去的...

    《程序员突击——Tomcat原理与Java Web系统开发》源码

    《程序员突击——Tomcat原理与Java Web系统开发》源码 作者根据多年的Java Web开发经验,精心编写了本书。按照读者的学习规律,本书在介绍Java技术的基础上,循序渐进地介绍了如何在最新的Tomcat上开发整合各种Java ...

    Tomcat启动顺序

    Tomcat的启动顺序涉及到多个层次的加载,从Bootstrap类开始,逐步加载系统配置、公共库、共享库以及Web应用程序。 【详细知识点】: 1. Bootstrap类: Tomcat的启动始于Bootstrap类,这是Tomcat服务器的主入口点...

    TOMCAT不能正常启动总结

    标题“TOMCAT不能正常启动总结”涉及到的是在部署和运行Apache Tomcat服务器时遇到的问题。Tomcat是一款广泛使用的开源Java应用服务器,主要用于运行Servlet和JSP应用。当Tomcat无法正常启动时,可能的原因多样,...

    tomcat启动管理工具

    【标题】:Tomcat启动管理工具 在Java Web开发领域,...总的来说,Tomcat启动管理工具是开发者和运维人员日常工作中不可或缺的部分,它们帮助我们有效地管理Tomcat服务器,提升开发效率,确保Web应用的稳定性和性能。

    监测tomcat应用down自动启动脚本

    针对"监测tomcat应用down自动启动脚本"这个主题,以下将详细介绍如何在Red Hat Enterprise Linux 5/6/7平台上实现这一功能。 首先,我们需要理解健康监测的概念。健康监测是指定期检查系统或服务的状态,以确定其...

    tomcat——服务器启动说明

    tomcat服务器启动入门说明,检查当前是否存在java进程,关闭进程,进入服务启动文件夹,启动服务,进入服务日志文件夹,进入日志查看模式

    tomcat不能启动的原因总结

    ### Tomcat不能启动的原因及解决方法 #### 一、引言 Apache Tomcat是一款开源的Servlet容器,主要用于部署Java Web应用程序。然而,在实际使用过程中,可能会遇到Tomcat无法正常启动的情况。本文将根据提供的文件...

    java代码启动tomcat

    Java 代码启动 Tomcat 在 Java 中,使用 Tomcat 服务器来发布 Web 应用程序是一种常见的做法。下面,我们将详细介绍如何使用 Java 代码来启动 Tomcat 服务器,并实现远程控制 Tomcat。 标题: Java 代码启动 ...

    centOS7设置Tomcat8开机启动

    在Linux系统中,尤其是CentOS 7,配置Apache Tomcat 8作为开机启动服务是确保服务器启动时自动运行Web应用程序的关键步骤。这个过程对于软件实施工程师来说非常重要,因为它可以简化维护工作,避免每次系统重启后...

    windows下,把tomcat作成服务开机自启动不显示cmd窗口.zip

    在Windows操作系统中,将Tomcat配置为服务并设置为开机自启动,且不显示命令行窗口,是一项常见的系统管理任务。这有助于确保Tomcat在计算机启动时自动运行,并且不会打扰用户界面。以下是对这个过程的详细解释: ...

    Windows7系统下tomcat启动不了的问题解决!

    在Windows7系统下,tomcat安装好后,输入http://localhost:8080后可以出现公猫的页面,但在程序中是TOmcat不能启动....

    tomcat工作原理深入详解——HowTomcatWorks中文版.pdf

    tomcat工作原理深入详解——HowTomcatWorks中文版.pdf

Global site tag (gtag.js) - Google Analytics