服务器启动时调用方法

我正在尝试在我的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安排它,构建JobCronTrigger并启动它。

这里有一个非常明显的例子。

使用web.xml配置的ServletContextListener 。 编写在contextInitialized方法中启动计时器的代码。