2009-06-21 27 views
0

對於我希望在J2EE容器中運行的後臺作業,我發現建議創建一個啓動servlet並使用Timer Service API創建一個託管Timer(在What tools are there for timed batch processes in J2EE?的答案中)。如何在Servlet啓動代碼中使用J2EE Timer Service API?

要創建一個計時器,我需要一個實現定時器API的上下文。 (Example

在Servlet類中,我重寫了init方法,但它只能訪問ServletContext,而不能訪問SessionContext。 ServletContext沒有創建定時器的方法,所以我被困在這裏。

如何在servlet的啓動代碼中訪問J2EE計時器服務?

+0

你認爲你需要的計時器?更多細節會有所幫助。 – duffymo 2009-06-21 15:01:30

回答

2

每當我聽到定時器任務時,我都忍不住想到這應該與Java EE應用服務器分開。你可以使用諸如Quartz或操作系統計劃任務之類的東西,或像AutoSys這樣的批處理管理器,但將它嵌入到servlet中看起來像是濫用servlet。

Java EE 5容器有一個TimerService,它是一個EJB。也許this將幫助你解決它。

+0

在Sun示例中,計時器將在企業bean的業務方法中創建。所以我需要爲這個無狀態會話bean編寫一個客戶端類,在一個啓動servlet中創建這個客戶端的一個實例,並用它來調用定時器的創建方法。 – mjn 2009-06-21 15:25:42