Java 捕获野蝇关闭钩

Java 捕获野蝇关闭钩,java,jboss,wildfly,Java,Jboss,Wildfly,在独立java应用程序中,很容易知道应用程序何时关闭 public class ShutDownHook { public static void main(String[] args) { Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { System.out.println("Shutdown Hook is runn

在独立java应用程序中,很容易知道应用程序何时关闭

public class ShutDownHook 
{ 
  public static void main(String[] args) 
  { 

    Runtime.getRuntime().addShutdownHook(new Thread() 
    { 
      public void run() 
      { 
        System.out.println("Shutdown Hook is running !"); 
      } 
    }); 
    System.out.println("Application Terminating ..."); 
  } 
}

在Wildfly application server中捕获此事件的选项有哪些

一种可能性是使用。这是web应用程序中的一个类,它侦听web应用程序的启动(
contextInitialized
)和关闭(
contextdestromed
)事件。您的代码类似于:

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

@WebListener
public class MyServletContextListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("Application Terminating ..."); 
    }
}
这不是100%您想要的,例如,如果安装此应用程序的Web应用程序未部署,则Wildfly仍在运行,但您的Web应用程序未运行。但是,如果您的环境只有一个webapp,或者如果您可以将此代码放入必须运行的webapp中,那么这将很好地工作。请注意,这是标准JEE代码,因此您可以在支持servlet的任何容器中运行它