回答

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

相關問題