簡體   English   中英

JMS-ActiveMQ-Servlet(遠程服務器(Apache-ActiveMQ))和控制台Java程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM