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