回答

0

如果您的要求很简单,只需在ServletContextListener中创建单个线程/ runnable就够了。在contextInitialized()中创建并启动线程,并在contextDestroyed()中将其关闭。 。使用由Executors.newSingleThreadScheduledExecutor()创建的ScheduledExecutorService。您传递给Executor的Runnable将从BlockingQueue中读取。

寻找在Creating threads a Webapplication which is deployed in Tomcat

+0

嘿gabhi,我的要求是一旦我的网络应用程序开始没有任何错误,就会触发一些东西。不只是部署在tomcat中。因此,我认为contextInitialized()不是我可以说在catalina.out – Sandy

2
tmp=$(mktemp -t catalina.XXXXXXX) || exit 136 
trap 'rm "$tmp"' 0 
trap 'exit 255' 2 15 
tail -n 200 catalina.out >"$tmp" 
if grep -q error "$tmp"; then 
    cat "$tmp" 
    exit 1 
fi 
exit 0 
0

要添加servlet作为要加载的最后什么的更多信息,

<load-on-startup>99</load-on-startup> 

,并在这个servlet作出另一个servlet将拨打电话的操作? 像这样,您可以确保应用程序已完全加载,因为第二个servlet会响应。

如果有一个单例可以保存启动过程中发生的任何异常,那么您可能会收到通知,或者用于对应用程序进行完整性检查。

欢呼声。

+0

中没有任何错误地部署的地方,所有的servlet都可以正确加载,但是有几个spring bean也应该加载而没有错误/异常。所以我认为你的方法不适合我。 – Sandy

相关问题