2013-02-04 43 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