部署所有战争后,我需要编写一条日志行。Tomcat 的部署器是否有我可以挂钩的观察者模式?
在第一次启动时,jBoss/Tomcat 会发送一行,其中包含启动所花费的确切时间。不完美......但有效。
但是在热部署时,不会发送/写入通知/日志:(
(项目中大约有 100 个 servlet,按顺序列出它们是有风险的,然后猜测一旦最后一个初始化就完成了部署,所以让我们尝试跳过那种解决方案)
有什么提示吗?
部署所有战争后,我需要编写一条日志行。Tomcat 的部署器是否有我可以挂钩的观察者模式?
在第一次启动时,jBoss/Tomcat 会发送一行,其中包含启动所花费的确切时间。不完美......但有效。
但是在热部署时,不会发送/写入通知/日志:(
(项目中大约有 100 个 servlet,按顺序列出它们是有风险的,然后猜测一旦最后一个初始化就完成了部署,所以让我们尝试跳过那种解决方案)
有什么提示吗?
你看过 JBoss JMX API 吗?其中有一个 MainDeployer MBean 可让您管理部署,它有一个方法listIncompletelyDeployed()
,您可以调用该方法来检查尚未部署的内容。ListenerServiceMBeanSupport 允许您订阅 JMX 通知。
好吧,我不能给你一个确切的解决方案,但是在 JMX 周围摸索可能会给你带来你需要的东西。
我认为这javax.servlet.ServletContextListener
可能是你想要的:
http://download.oracle.com/javaee/5/api/javax/servlet/ServletContextListener.html
我看到创建和销毁上下文的生命周期事件。或许,结合 servlet init 和 destroy 方法用于单个 servlet,可能会有所帮助。