我正在尝试在我无法控制的tomcat web应用程序中实现一个关闭钩子。基本上,我已经实现了一个lib,它使用基于actor的spray rest客户端。我尝试了典型的喷雾关闭钩,但它不起作用。最糟糕的是,对演员系统的访问是非法的,好像一切都已经关闭了。
我想知道如果有人想打电话给tomcat是否具体:
{{1}}
答案 0 :(得分:1)
我认为你不需要这样做。
您应该在spray.servlet.Initializer
注册ServletContextListener
作为web.xml
。
这是spray.servlet.Initializer
覆盖从github.com/spray/spray复制ServletContextListener.contextDestroyed
@volatile private[this] var actorSystem: Option[ActorSystem] = None
...
def contextDestroyed(e: ServletContextEvent): Unit = {
booted switchOff {
println("Shutting down spray application ...")
actorSystem.foreach(_.shutdown())
actorSystem.foreach(_.awaitTermination())
}
}