/ / Tomcat vypínací hák - sprej

Tomcat vypínací hák - sprej

Snažím sa zaviesť zavesenie háku v aTomcat web aplikácie, kde som malú kontrolu. V podstate som implementoval lib, ktorý používa klienta na postrek rozprášení, založený na hercovi. Vyskúšal som typický vypínací hák spreja, ale nefungoval. Najhoršie to hovorí, že prístup k hercovi systému je nezákonný, ako keby všetko bolo vypnutie už.

Zaujímalo by ma, či je pre koňa špecifické, ak chceme zavolať:

Runtime.getRuntime().addShutdownHook(new Thread() {

override def run() {
println("shutting down spray")
IO(Http) ! Http.CloseAll
IO(Http) ! PoisonPill
system.shutdown();
}
})

odpovede:

1 pre odpoveď č. 1

Nemyslím si, že to potrebujete.

Mali by ste sa zaregistrovať spray.servlet.Initializer ako ServletContextListener vo vašom web.xml.

To je ako spray.servlet.Initializer prepisy ServletContextListener.contextDestroyed skopírovaný z github.com/spray/spray

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

Pozri tiež dokumentácia sprejového servletu.