Захватить крючок Wildfly - PullRequest
       25

Захватить крючок Wildfly

0 голосов
/ 14 октября 2019

В автономных 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?

1 Ответ

1 голос
/ 14 октября 2019

Одной из возможностей является использование ServletContextListener . Это класс в веб-приложении, который прослушивает события запуска (contextInitialized) и завершения работы (contextDestroyed) веб-приложения . Ваш код будет выглядеть примерно так:

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% то, что вы хотите, если веб-приложение, в котором он установлен, например, не развернуто, Wildfly все еще работает, но ваше веб-приложение не,Но если ваша среда такова, что существует только одно веб-приложение или вы можете поместить этот код в веб-приложение, которое должно быть запущено, то это будет работать нормально. Обратите внимание, что это стандартный код JEE, поэтому вы можете запустить его в любом контейнере, который поддерживает сервлеты.

...