[英]JMS - ActiveMQ - Servlet(Remote Server (Apache-ActiveMQ)) and Console Java Program
我必須將消息從JAVA控制台程序發送到APACHE Tomcat 7.0.42 Server上的servlet,並使用ActiveMQ 5.8.0,然后將確認消息發送回該程序,並繼續執行相同的操作,直到服務器脫機為止。
我對JMS完全陌生,我只知道servlet,jsp,偵聽器,即沒有框架。
我有:Eclipse-Kepler和JDK1.7,並且無法在Apache上配置ActiveMQ。
我讀了很多博客,但似乎無濟於事
請指導我如何解決該問題。
謝謝。
如果僅使用servlet容器(Tomcat),則可以創建如下非托管線程:
@WebListener
public class MyServletContextListener implements ServletContextListener {
public void contextInitialized(final ServletContextEvent sce) {
final java.util.Timer timer = new Timer();
// Executes repeatedly (delay = 4000, period = 5000)
timer.schedule(new ReplyTask(), 4000, 5000);
sce.getServletContext().setAttribute("replyTaskTimer", timer);
}
public void contextDestroyed(final ServletContextEvent sce) {
final java.util.Timer timer =
(Timer) sce.getServletContext().getAttribute("replyTaskTimer");
timer.cancel();
}
}
在ReplyTask
只需讀取傳入隊列,然后在傳出隊列中發送一些內容(我建議使用兩個不同的隊列來ping和pong)。 您必須取消計時器,否則該線程將在取消部署和重新部署后繼續存在。
注意:如果您使用的是應用程序服務器(例如JBoss),則可以使用消息驅動bean(MDB)來實現 。 更加簡潔明了,線程由應用程序服務器管理。 使用像JBoss這樣的應用服務器的額外好處是集成的HornetQ JMS提供程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.