2013-02-04 44 views
-1

我想在部署后启动的JBOSS上部署Java应用程序,在每“X”秒后将文本行写入文件并在JBOSS停止时停止。使用jboss轮询

我知道如何创建一个可运行jar,但我不知道如何在jboss中创建一个war文件。

while(true){ 
    count ++; 
    System.out.println("Hello - " + count); 
    Thread.sleep(this.properties.getSleep_time() *1000); 
} 

我已经写了一个方法,每10秒轮询一次数据库表,它工作正常。我已经将它嵌入到一个servlet中,只是将它部署在jboss上(使用init方法和定时器)。所有工作都很好,除非JBOSS关闭,因为它不能取消部署我的servlet。轮询目的使用servlet可以吗?

+0

我刚刚咨询了大G,但我没有找到任何可以帮助我的东西。 – PapaSmurf

回答

0

我已经解决了插入我的问题这2种方法在我的伺服器内:

@Override 
public void contextInitialized(ServletContextEvent event) { 
    // Do your job here during webapp startup. 
} 

@Override 
public void contextDestroyed(ServletContextEvent event) { 
    // Do your job here during webapp shutdown. 
} 

因此,当contextDestroyed被称为我停止轮询调度。

2

我想你需要从Java EE tutorial开始了解什么是Java EE(比如JBoss As)。

timer service是您需要查看大头贴计划的部分(规范在任何线程操作时都放置了“不应该”(小贴士:如果进程持续时间可以类似于tick时间,则使用手动触发器通过@Schedule

你的问题真的引发一些报警,你应该看看的Java EE教程和其他Java EE文件,以评估是否Java EE的是为您的应用正确的解决方案。

+0

关于[使用计时器服务]的教程部分(http://docs.oracle.com/javaee/6/tutorial/doc/bnboy.html)似乎特别相关。 –

+0

您认为这个问题表明Java EE不是正确的解决方案吗?很多人在应用程序服务器上运行计划任务,这似乎就是一个例子。 –

+0

如果您需要良好的线程管理,Java EE将不适合。但是,如果你只需要安排工作时间,那应该没关系。 – Kazaag