一旦我的 Web 应用程序成功部署在 Tomcat 中且没有任何错误/异常,我想得到通知吗?
我可以编写一个 servletContextListener 但contextInitialized()
方法将在 Web 应用程序启动之前被调用,这不能解决我的要求。
一旦我的 Web 应用程序成功部署在 Tomcat 中且没有任何错误/异常,我想得到通知吗?
我可以编写一个 servletContextListener 但contextInitialized()
方法将在 Web 应用程序启动之前被调用,这不能解决我的要求。
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
将一个 servlet 添加为最后一个加载,怎么样?
<load-on-startup>99</load-on-startup>
并在这个 servlet 上调用另一个 servlet 来执行您的操作?像这样,您将确保应用程序已完全加载,因为第二个 servlet 会响应。
最好有一个单例来保存启动过程中发生的任何异常,这样您就可以收到通知,或用于应用程序的健全性检查。
干杯。
如果您的要求很简单,那么只需在 ServletContextListener 中创建单个线程/可运行就很容易了。在 contextInitialized() 中创建并启动线程,并在 contextDestroyed() 中将其关闭。. 使用由 Executors.newSingleThreadScheduledExecutor() 创建的 ScheduledExecutorService。您传递给 Executor 的 Runnable 将从 BlockingQueue 中读取。