2009-06-21 36 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

相关问题