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ď č. 1Nemyslí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.