Tomcat关机钩子

时间:2015-06-08 21:50:27

标签: spray

我正在尝试在我无法控制的tomcat web应用程序中实现一个关闭钩子。基本上,我已经实现了一个lib,它使用基于actor的spray rest客户端。我尝试了典型的喷雾关闭钩,但它不起作用。最糟糕的是,对演员系统的访问是非法的,好像一切都已经关闭了。

我想知道如果有人想打电话给tomcat是否具体:

{{1}}

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())
  }
}

另见spray-servlet documentation