`

思考才能有效的解决问题----<WEB应用在捕捉异常并处理时,请不要使用System.exit(1)!!!! > 

    博客分类:
  • JAVA
阅读更多

思考才能有效的解决问题----<WEB应用在捕捉异常并处理时,请不要使用System.exit(1)!!!! > 

为了将此事铭记,我不得不痛苦的与事件相关的整个过程慢慢将回忆起来:

  2010年10月7日上午,突然接到客户反映,说客户的某服务器上多个JSP网站无法打开,管理员报告说Tomcat WEB服务器停止了服务,且无法再次打开服务。

         火速赶往检查。发现无论如何都打不开tomcat服务,惊奇之中心情忐忑。怪事~~~

   带着疑惑,我手动打开tomcat 目录下的bin/startup.bat ,当见到稍显可爱的tomcat 打印黑板时,心中顿觉一松。然而不到三秒,在CMD运行窗口打印完tomcat服务启动相关的一些信息后竟从我眼前神秘消失!当下愕然!再次startup.bat,瞧见打印信息中唯一一句也是最后一句打印报告: [Fatal Error]:-1 -1 Premature end of file。

   心中奇怪,“果断”的将log4j日志等级调高至DEBUG ,然后心中满怀期待的再次startup 。可惜,打印信息只出现一句 DEBUG: log4j initiated... 然后tomcat运行窗口再次神秘消失。最后一句依然是: [Fatal Error]:-1 -1 Premature end of file。

   擦~~顿觉冒汗。已经无故障运行了半年的应用此时为何突然出现故障?而且如此神奇,诡异!究竟是什么问题呢?

   介绍一下该服务器的混乱环境。

   由于是大型企业服务器,上面运行着该企业数量众多的网站应用。从ASP到.net,再到PHP,然后是JSP。数据库也是种类繁多,从sqlserver 到 mysql ,甚至于oracle也有安装,综合来说是一个无序而管理混乱的服务器,加上里面的网站应用编写者水平层次不一,导致木马时有发生,简直就像一个混乱沼泽。

   该服务器上的JSP容器采用的是tomcat,tomcat版本一直使用着tomcat6.18,而里面的多个应用有单纯的JSP&SERVLET,也有SSH1,还有SSH2。而这些网站数量加起来不下十数个。

   心情忐忑,直奔百度和谷歌。网上他人的记录,有web.xml 配置错误,到SSH包冲突,再到java环境变量配置错误,重装tomcat,重装JAVA,再到种种说不清的异常,每一个都让我惊疑不定。只能硬着头皮,按着线索一个个检查。然而由于完该tomcat 容器下面的应用众多,所耗时间之巨真是令人抓狂!

   一个个错误的猜测,一个个的方案尝试,长达漫长的二天!这二天,可谓是绞尽脑汁,一个个测试都以期待开始,而最终却都以失败告终。二天之后仍无头绪!而客户在不停摧促!心中压力逾来逾重!

   二天后的今天,在经历极其痛苦的折磨之后,极其疲惫的我想了个办法,将应用逐个分离,然后测试,最终找到了罪魁祸首,某XXX应用。只要有该XXX应用存在,tomcat必不能启动!!至此心中总算松了一口气! 

   强打起精神单独测试该应用的源代码,最后最终发现了万恶之源呀,在几万行代码中的一句与xml有关的短短的

 System.exit(1) 藏在某XML文件异常捕捉处理中。汗~~

 当发现它时,我的痛苦之情到了无以复加的地步!看着它只觉得这行代码极其罪恶!万恶的System.exit(1) ,你害得我好苦啊!

 总结:不管,这句System.exit(1)是在代码测试的时候某人无意的添加的,又或者是在其余种种情况下添加的,以至于它害得我二天多么的心神疲惫,这些都不重要了。重要的是经过这次事件后,发现我严重的缺乏独立思考的能力,过于依赖百度与谷歌。

  勤劳也许能把一件事情做完,但只有用心才能把一件事件做好啊!

 

 

 

 

分享到:
评论
3 楼 xiegqooo 2016-02-25  
fbb_11 写道
如果以前都正常,而突然不正常了,正常的思路应该是分析变化的部分。
根据时间排序,寻找最近修改的文件,逐个试才是正确的思路。


1、历史记录
2、向下排除
谢谢了 、
2 楼 fbb_11 2013-06-05  
如果以前都正常,而突然不正常了,正常的思路应该是分析变化的部分。
根据时间排序,寻找最近修改的文件,逐个试才是正确的思路。
1 楼 iamaj2eeprogrammer 2011-04-13  
兄弟,你写的太好了,学习了。
文章后部分
“重要的是经过这次事件后,发现我严重的缺乏独立思考的能力,过于依赖百度与谷歌。

  勤劳也许能把一件事情做完,但只有用心才能把一件事件做好啊!”
总结的蛮好的,通过一个工作中的真实实例,反思自身存在的不足。这才是你发现的最大的“问题”。
受教了。

相关推荐

    System.Web.Extensions.dll

    Parser Error Message: Could not load file or assembly 'System.Web.Extensions, Version=1.0.61025.0, ...出现该错误解决办法 将System.Web.Extensions.dll 与System.Web.Extensions.Design.dll 放到项目BIN目录

    System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

    ### System.Web.Extensions 程序集问题解析及解决方案 #### 一、问题概述 在开发过程中,遇到“未能加载文件或...通过以上步骤,可以有效解决 `System.Web.Extensions` 程序集缺失的问题,确保应用程序能够正常运行。

    VS2005显示一直“正在添加对System.web.dll的引用”的解决办法

    在使用Visual Studio 2005(简称VS2005)的过程中,有些用户遇到了一个问题:无论是在项目中添加按钮、进行重命名操作还是执行其他一些常规操作时,任务栏总是显示“正在添加对System.web.dll的引用”。这种情况下,...

    Web.config配置文件

    ### Web.config配置文件知识点 #### 一、概述 ...通过以上内容,我们了解了 Web.config 文件的基础知识以及如何有效地使用它来管理 ASP.NET 应用程序的各种配置需求。这对于开发者来说是非常重要的技能之一。

    System.Web.Extensions.dll System.Web.Extensions.Design.dll 下载

    System.Web.Extensions.dll 和 System.Web.Extensions.Design.dll 是两个关键的组件,它们在ASP.NET框架中扮演着重要的角色,特别是在实现AJAX(Asynchronous JavaScript and XML)功能时。这两个DLL文件是ASP.NET ...

    System.Web.Http.WebHost

    `System.Web` 是 .NET Framework 中的一个命名空间,包含了大量与 ASP.NET Web 应用程序开发相关的类和接口。这个命名空间包括了处理 HTTP 请求、身份验证、状态管理、页面生命周期等核心功能。ASP.NET 是微软推出的...

    C# System.Web源码

    总之,深入研究C# Unity3d中的System.Web源码,不仅可以帮助我们理解Web应用开发的基本原理,还可以使我们在实际项目中更好地利用这些工具,解决复杂问题,优化代码,提升用户体验。只有深入源码,才能真正掌握其...

    System.Web.Extensions.dll和System.Web.Extensions.Design.dll

    System.Web.Extensions.dll和System.Web.Extensions.Design.dll是ASP.NET框架中两个至关重要的组件,主要用于支持AJAX(Asynchronous JavaScript and XML)技术。在ASP.NET应用程序中,这些DLL文件提供了丰富的功能...

    System.Web.dll

    在System.Web.dll中,`System.Web`命名空间扮演着核心角色,它包含了一系列用于处理Web应用程序的类。例如: 1. **HttpApplication**:这是ASP.NET应用程序的基础,负责管理整个请求生命周期。每个请求都会通过一...

    System.Web.Mvc.dll 1.0-5.0各种版本

    在.NET框架中,`System.Web.Mvc.dll`扮演着至关重要的角色,它是ASP.NET MVC(Model-View-Controller)框架的核心组件,为Web应用开发提供了强大的支持。本文将详细探讨`System.Web.Mvc.dll`从1.0到5.0各个版本的...

    System.Web.Helpers.dll

    System.Web.Helpers.dll

    Aspnet-asp.net-demo-System.Web.Optimization.zip

    Aspnet-asp.net-demo-System.Web.Optimization.zip,网络表单js csswebform css演示,asp.net是一个开源的web框架,用于使用.net构建现代web应用和服务。asp.net创建基于html5、css和javascript的网站,这些网站简单、...

    Web.config配置文件详解

    在ASP.NET框架中,`Web.config`文件是每个Web应用程序的核心配置文件,它定义了应用程序的行为、设置和安全策略。本文将深入探讨`Web.config`配置文件的常见用法和部分关键节点。 首先,`Web.config`是一个基于XML...

    System.Web.Extensions.dll(v3.5)

    《深入理解System.Web.Extensions.dll(v3.5)与.NET Framework 3.5》 ...结合System.Web.Extensions.Design.dll的设计时支持,开发过程变得更加顺畅,使得.NET Framework 3.5成为了构建现代Web应用的理想平台。

    SYSTEM.NEW.DAT解包工具(可解5.0-8.0系统)

    在Android系统中,`SYSTEM.NEW.DAT`是一个重要的系统文件,它包含了系统的各种核心组件、设置和应用程序。这个文件通常是经过打包处理的,以便于在设备上高效地存储和分发。本文将深入探讨`SYSTEM.NEW.DAT`的结构、...

    WebConfigSection

    在.NET框架中,`Web.config`文件是ASP.NET应用程序的核心配置文件,用于定义应用程序的配置设置,如数据库连接字符串、身份验证模式、授权规则、中间件设置等。`WebConfigSection`在这里指的是`Web.config`文件中的...

    解决System.Data.SQLite兼容32位和64位问题(无需指定处理器架构和客户机)

    解决System.Data.SQLite兼容32位和64位问题 将当前说明文档的目录下的x64、x86目录和System.Data.SQLite.dll文件复制到您的应用程序根目录中(注意更新引用,引用System.Data.SQLite.dll即可,两目录中的不需要引用,...

    System.Web.Mvc 2.0 Dll

    **System.Web.Mvc 2.0 DLL** 是ASP.NET MVC框架的一个关键组件,它为Web应用程序开发提供了模型-视图-控制器(MVC)模式的支持。ASP.NET MVC是一种轻量级、基于模式的Web应用程序开发框架,它允许开发者使用HTML、...

Global site tag (gtag.js) - Google Analytics