我正在运行JAX-RS应用程序,该应用程序在应用程序关闭后需要进行一些清理。我为此安装了一个关闭钩子,它工作正常。但是,在单元测试中,关闭挂钩(当然)并未触发,因为JVM在两次调用之间没有关闭。我想解决这个问题,只能使用关闭挂钩作为最后的手段。我想,如果我只从servlet容器中取消部署应用程序而没有明确触发关闭,则会发生同样的情况。另外,我想我可能在应用程序容器继续运行并且我的关闭挂钩仍然被注册的情况下创建了内存泄漏?如何监听JAX-RS取消部署
问题:是否有可能侦听负责我的JAX-RS应用程序的服务器/ servlet被销毁?我正在考虑像Servlet#destroy
这样的方法。
我在寻找类似的东西:new ResourceConfig().register(new MyShutDownListener())
或者我可以在ShutDownBinder
做什么?有任何想法吗?
ServletContextListener.contextDestroyed()方法对你的情况不好吗? –
我开始使用由“GrizzlyHttpServerFactory”嵌入的应用程序(https://jersey.java.net/apidocs/latest/jersey/org/glassfish/jersey/grizzly2/httpserver/GrizzlyHttpServerFactory.html)。我没有找到办法让自己陷入困境。 –