`
woshixushigang
  • 浏览: 578080 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Shutting down 'zfsr' pool immediately [Shutdown Hook]

阅读更多

今天遇到了个问题,

 

  protected void doPost(HttpServletRequest req, HttpServletResponse resp)
  throws ServletException, IOException {
  GameFrame frame=new GameFrame();
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.show();
  //上面调用一个java的小程序

 // 此处是跳转的页面
  resp.sendRedirect("index.jsp");
 }

 

 

当我关闭 小程序后报错,tomcat自动停止

 

 

 Shutting down 'zfsr' pool immediately [Shutdown Hook]
2011-3-9 18:19:14 org.apache.coyote.http11.Http11Protocol pause
信息: Pausing Coyote HTTP/1.1 on http-8080
- Stopping Prototyper thread
- Stopping HouseKeeper thread
- 通过包名加类名创建类的对象时异常!异常发生在com.future.db.TransactionProxy类的getInstance(String path)方法异常信息:com.pager.test.biz.impl.UserBizImpl
java.lang.ClassNotFoundException: com.pager.test.biz.impl.UserBizImpl
 at com.webbook.db.TransactionProxy.getInstance(TransactionProxy.java:35)
 at com.webbook.servlet.FindUserServlet.<clinit>(FindUserServlet.java:31)
 at sun.misc.Unsafe.ensureClassInitialized(Native Method)

分享到:
评论
2 楼 woshixushigang 2011-08-25  
你遇到的是什么样的问题呢?JFrame.EXIT_ON_CLOSE 这句话貌似有问题,当时我是做个java小游戏时候出的问题,后来我用Js弄的。不过我感觉是这个问题。

你看看下面的或许对你有帮助。
Runtime的(当Java程序非法退出时,这个可以用来在写日志等操作,免得推出的时候,不知道自己运行到什么地方,或者是假死机状态的时候,调用强制结束的时候用)
addShutdownHook
public void addShutdownHook(Thread hook)
注册新的虚拟机来关闭挂钩。
Java 虚拟机会为了响应以下两类事件而关闭:

• 程序正常退出,这发生在最后的非守护线程退出时,或者在调用 exit(等同于 System.exit)方法时。或者,
• 为响应用户中断而终止 虚拟机,如键入 ^C;或发生系统事件,比如用户注销或系统关闭。
关闭挂钩 只是一个已初始化但尚未启动的线程。虚拟机开始启用其关闭序列时,它会以某种未指定的顺序启动所有已注册的关闭挂钩,并让它们同时运行。运行完所有的挂钩后,如果已启用退出终结,那么虚拟机接着会运行所有未调用的终结方法。最后,虚拟机会暂停。注意,关闭序列期间会继续运行守护线程,如果通过调用 exit 方法来发起关闭序列,那么也会继续运行非守护线程。
一旦开始了关闭序列,则只能通过调用 halt 方法来停止这个序列,此方法可强行终止虚拟机。
一旦开始了关闭序列,则不可能注册新的关闭挂钩或取消注册先前已注册的挂钩。尝试执行这些操作会导致抛出 IllegalStateException。
关闭挂钩可在虚拟机生命周期中的特定时间运行,因此应保护性地对其进行编码。特别是应将关闭挂钩编写为线程安全的,并尽可能地避免死锁。关闭挂钩还应该不盲目地依靠某些服务,这些服务可能已注册了自己的关闭挂钩,所以其本身可能正处于关闭进程中。
关闭挂钩应该快速地完成其工作。当程序调用 exit 时,虚拟机应该迅速地关闭并退出。由于用户注销或系统关闭而终止虚拟机时,底层的操作系统可能只允许在固定的时间内关闭并退出。因此在关闭挂钩中尝试进行任何用户交互或执行长时间的计算都是不明智的。
与其他所有线程一样,通过调用线程 ThreadGroup 对象的 uncaughtException 方法,可在关闭挂钩中处理未捕获的异常。此方法的默认实现是将该异常的堆栈跟踪 (stack trace) 打印至 System.err 并终止线程;它不会导致虚拟机退出或暂停。
仅在很少的情况下,虚拟机可能会中止,也就是没有完全关闭就停止运行。虚拟机被外部终止时会出现这种现象,比如在 Unix 上使用 SIGKILL 信号或者在 Microsoft Windows 上调用 TerminateProcess。如果由于内部数据结构损坏或试图访问不存在的内存而导致本机方法执行错误,那么可能也会中止虚拟机。如果虚拟机中止,则无法保证是否将运行关闭挂钩。
参数:
hook - 一个已初始化但尚未启动的 Thread 对象
抛出:
IllegalArgumentException - 如果指定的挂钩已注册,或者可以确定挂钩正在运行或者已运行完毕
IllegalStateException - 如果虚拟机已经处于关闭进程中
SecurityException - 如果安全管理器存在并且拒绝 RuntimePermission("shutdownHooks")
例子程序:

public class ShutdownDemo {

public ShutdownDemo ( ) {

Thread t = new ShutdownHookThread ( “Here I am !!!” );

Runtime.getRuntime().addShutdownHook ( t );

System.out.println ( “Now shut me down …” );

while ( true ) {
System.out.print ( “.” );
try {
Thread.sleep ( 300 );
} catch ( InterruptedException ie ) { }
}

}

public static void main ( String args[] ) {
new ShutdownDemo ( );
}

}

class ShutdownHookThread extends Thread {

protected String message;

public ShutdownHookThread ( String message ) {
this.message = message;
}

public void run ( ) {
System.out.println ( );
System.out.println ( message );
}

}

1 楼 shukuiyan 2011-08-25  
请问,这种问题是怎样解决的呢?

相关推荐

    STLink.zip

    "STLink.zip"这个压缩包提供的文件显然是为了帮助开发者解决STM32调试过程中遇到的问题,特别是针对"cannot access target shutting down debug session"这一错误。 "cannot access target shutting down debug ...

    Oracle Solaris 11 Booting and Shutting Down Oracle Solaris on SP

    本文档“Oracle Solaris 11 Booting and Shutting Down Oracle Solaris on SPARC Platforms”详细介绍了在 SPARC 平台上启动和关闭 Oracle Solaris 11 的过程和技术。 在 SPARC 平台上启动 Oracle Solaris 11 涉及...

    Oracle Solaris 11.2 Booting and Shutting Down Oracle Solaris 11

    1. **Shutdown Command**:用户或管理员通过`shutdown`命令触发关机过程,这个命令可以指定关机时间、原因和模式(如重启或完全关闭)。 2. **Service Shutdown**:SMF开始按逆序停止服务,确保依赖关系得到尊重,...

    Oracle Solaris 11.1 Booting and Shutting Down Oracle Solaris 11

    1. **正常关机**:通过`shutdown -h now`命令,系统会按照预定的顺序停止所有服务,关闭网络连接,然后安全地关闭电源。 2. **紧急关机**:在无法正常关机的情况下,可以使用`halt`或`reboot`命令强制关机,但这...

    Oracle Solaris 11.3 Booting and Shutting Down Oracle Solaris 11

    1. **安全关机** - 使用`shutdown`命令安全地关闭系统。这将停止所有活动的服务,确保数据完整性和系统状态的保存。 2. **系统服务停止** - SMF管理的服务按依赖关系顺序被优雅地关闭,确保没有服务在需要它的服务...

    Oracle Solaris 11 Booting and Shutting Down Oracle Solaris on x8

    Oracle Solaris 11在x86平台上的启动与关闭是操作系统管理的重要组成部分,它涉及到系统启动流程、关机步骤以及故障排查等多个方面。Oracle Solaris是一个强大的企业级操作系统,尤其在性能、安全性和可管理性方面...

    文字转换语音软件(可存储为音频文件)

    在IT领域,文字转换语音(Text-to-Speech, TTS)技术是一种将文本数据转化为可听见的音频输出的重要工具。这种技术广泛应用于各种场景,包括有声读物、辅助技术(帮助视障人士)、自动语音播报系统、智能助手以及...

    ABAQUS模拟出现问题.docx

    ABAQUS 模拟出现问题的解决方法 ABAQUS 模拟是 finite element analysis(有限元分析)软件中的一种,可以用于结构、热、流体、耦合、优化等领域的模拟分析。然而,在使用 ABAQUS 模拟时,经常会出现各种问题,影响...

    KunLun9016 升级HBA卡固件时FWupgrade小系统halt问题故障案例分析

    这是因为系统镜像文件未完全加载成功,且开始执行"Starting Cleaning Up and Shutting Down Daemons."守护程序时,出现网络不稳定现象,则导致守护程序执行失败打印,以及系统 halt。 四、解决方案 为了解决该问题...

    Laravel开发-graceful-laravel-workers

    3. **优雅关闭(Graceful Shutdown)**:在“graceful-laravel-workers”中,主要目标是实现优雅关闭,即在接收到停止命令时,工作进程会等待当前处理的任务完成后再退出,确保数据的一致性和完整性。 4. **...

    keil4使用的jlink动态驱动库

    MDK V4.60 or earlier Problem: Some SW-DP Ids of Cortex-M0+ devices were not recognized correctly, resulting in an error message when trying to start a debug session. For example the Freescale Kinetis...

    myeclipse 10. 0 提示太长

    如果myeclipse 10.0 装了中文包,就会出现提示太长,类似于这样[JavaElemeentsLabels_comma_string......],如何解决这个问题,我在这里改了下中文包的内容,下载后直接覆盖就可以. 包名:org.eclipse.jdt.ui.nl_zh_3.7.0....

    Ubuntu的简单命令

    简单的操作命令,关于Ubuntu的命令行

    u盘装系统常见问题。个人经验

    在IT领域,使用U盘安装操作系统是常见的技术手段之一,尤其对于系统维护、故障修复以及新系统的部署等场景尤为重要。然而,在实际操作过程中,不少用户会遇到各种问题,导致安装过程受阻或失败。...

    SSH Server Configurator (kcm_sshd)-开源

    kcm_sshd是基于python的KControl模块,旨在配置OpenSSHD服务器。 它支持许多常用选项,并且可以很好地集成到“系统设置”和其他KDE配置工具中。

    weblogic启动失败问题解决

    在服务器突然 down 掉的情况下,所有进程都将非正常关闭,从而导致下次启动 WebLogic 时报错。 解决步骤 为了解决 WebLogic 启动失败的问题,我们可以按照以下步骤进行操作: 1. 停止服务:首先,需要停止 ...

    网络设备驱动源码。NBD(Network Block Device)让你可以将一个远程主机的磁盘空

    网络设备驱动源码。NBD(Network Block Device)让你可以将一个远程主机的磁盘空间,当作一个块设备来使用.就像一块硬盘一样. 使用它,你可以很方便的将另一台服务器的硬盘空间,增加到本地服务器上....

    apache-jmeter-5.4.3,接口压测工具jmeter

    Apache JMeter是一款强大的开源接口压测工具,由Apache组织开发并维护,主要应用于对软件进行压力测试,确保系统在高负载下仍能稳定运行。... JMeter的工作原理是模拟多个并发用户执行特定的测试脚本,以此来模拟真实...

    nutian ahv

    Nutanix AHV(Acropolis Hypervisor)是Nutanix企业云平台的一部分,是一个与Acropolis超融合基础架构紧密集成的软件定义数据中心(SDDC)解决方案。超融合基础架构(Hyper-Converged Infrastructure, HCI)是一种IT...

    AutoExit for Desktop(自动关机程序)

    Remote Shutdown of multiple computers each with their own settings - AutoExit adds the capability of shutting down multiple computers each with their own settings. A whole range of settings can be set...

Global site tag (gtag.js) - Google Analytics