我正在将WAR应用程序从PayaraServer迁移到Payara Micro,以减少RAM使用。
我只是意识到,使用CTRL + C停止实例时,不会调用EJB上的@PreDestroy。
有正确的方法来正确关闭payaramicro实例,因为我想执行一些操作。
感谢您的回答!
或者停用Payara Server中的哪些服务以使用与PayaraMicro一样多的RAM?
我正在使用版本5.183,并且我也尝试了5.192。
您使用哪种EJB?我认为它应该适用于@Singleton
和@Stateless
。我不确定Payara Micro如何支持其他EJB。
但是,由于Payara Micro支持Java EE Web Profile,并且无论如何您都在使用Web应用程序,所以我建议使用@WebListener
来通知生命周期事件。
它可以实现如下:
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class ContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent event) {
// do needed setup work here
}
@Override
public void contextDestroyed(ServletContextEvent event) {
// do your cleanup actions here
}
}
然后将此类简单地添加到您的WAR文件中。