服务器启动时调用方法
我正在尝试在我的webapplication启动时调用方法。 目的是启动定时器,该定时器以定义的间隔进行一些工作。 当我的jboss 7.1 Web应用程序启动时,如何调用函数helloworld?
除了ContextListeners之外,您还可以在启动时加载web.xml中的servlet:
mytask servlets.MyTaskServlet ... 1
此servlet可以使用您想要的任何方式启动任务,例如,请参阅此链接 。
但你不应该使用这种方法,imho。
使用经过validation的框架/库,如石英或类似工具。 在Web服务器中运行和同步任务时存在很多问题/问题,最好使用一些经过validation的工具,而不是重复这些工具已经遇到并解决的错误。 可能需要一段时间才能掌握,但会避免许多令人头痛的问题。
Jboss本身有一些工具用于此目的:安排和管理任务。 从未使用过所以不能推荐。
如果要在Web应用程序为任何客户端提供服务之前运行某些代码,则需要ServletContextListener。
创建你的监听器类
import javax.servlet.*; public class MyServletContextListener implements ServletContextListener { public void contextInitialized(ServletContextEvent e) { //Call your function from the event object here } public void contextDestroyed(ServletContextEvent e) { } }
将该类放在WEB-INF / classes中
将< listener >元素放在web.xml文件中。
com.test.MyServletContextListener
希望这可以帮助。
查看Quartz Scheduler 。 您可以使用CronTrigger以定义的间隔触发。 例如,每5分钟看起来像这样:
"0 0/5 * * * ?"
我们的想法是实现Job
接口,它是运行的任务,使用SchedulerFactory
/ Scheduler
安排它,构建Job
和CronTrigger
并启动它。
这里有一个非常明显的例子。
使用web.xml
配置的ServletContextListener
。 编写在contextInitialized
方法中启动计时器的代码。