从历史上看,我已经将我的JMS使用者应用程序部署为在Tomcat(Windows框)下部署的Spring webapps.然后,这些消费者将在同一个Tomcat实例下与我的其他Web应用程序一起运行.然而,随着我使用的消费者数量的增长,我意识到这将成为一种维护噩梦.

我的解决方案是将这些webapps转换为部署为jar的“main method”独立应用程序.实际上,我能够成功地将它们打包在一起,以尝试尽可能多地重用资源(DAO,依赖项等).

这是我的主要方法:

public static void main(String[] args) {

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

try {

FooListener fooListener = (FooListener) context.getBean("fooListener");

fooListener.start();

} catch (Exception e) {

logger.error(e.getMessage(),e);

}

try {

BarListener barListener = (BarListener) context.getBean("barListener");

barListener.start();

} catch (Exception e) {

logger.error(e.getMessage(),e);

}

}

我的问题:

>我是否需要在主方法应用程序中执行任何特殊操作来关闭我的JMS连接,或者在应用程序终止时它们会关闭吗?

>有没有人有任何个人偏好或其他关于是使用tomcat部署jms消费者还是作为独立应用程序?

编辑:

更多信息:FooListener和BarListener扩展了以下抽象类.它们从applicationContext.xml文件中的相应bean继承它们的值,并且它们都覆盖onMessage()方法以异步使用消息.

public abstract class TextMessageListener implements MessageListener {

protected ConnectionFactory connectionFactory;

protected String queueName;

protected String selectors;

public void start() throws JMSException {

Connection connection = connectionFactory.createConnection();

Session session = connection.createSession(false,Session.CLIENT_ACKNOWLEDGE);

MessageConsumer consumer = session.createConsumer(session.createQueue(queueName),selectors);

consumer.setMessageListener(this);

connection.start();

}

public abstract void onMessage(Message message);

}

java tomcat jms_java – 使用ActiveMQ和Spring的JMS Standalone使用者相关推荐

  1. java spring省略jsp,Java +Tomcat + SpringMVC实现页面访问示例解析

    window7下Java环境安装记录: 一.安装Tomcat 1.下载tomcat 7.0,解压,无需安装,放置到目录:D:\apache-tomcat-7.0.90. 2.配置系统环境变量,CATA ...

  2. ActiveMQ整合spring

    主要讲解点: 使用ActiveMQ完成发短信功能(重点) 2.Kindeditor上传图片及图片管理器功能的实现(对应后台代码是重点, Kindeditor参照demo会用就行) 宣传活动的保存功能( ...

  3. ActiveMQ与spring整合

    2019独角兽企业重金招聘Python工程师标准>>> 1 生产者 第一步:引用相关的jar包. <dependency> <groupId>org.spri ...

  4. 面向Java程序员的20大Spring REST面试问题答案

    大家好,过去两周来,我一直在与Spring教程共享一些REST,今天,我将向申请Web开发人员角色的Java开发人员共享一些常见的Spring和REST面试问题. 由于Spring Framework ...

  5. 使用ActiveMQ支持Spring Integration路由

    正如我在上 一篇 文章中所讨论的那样 ,Spring Integration(SI) 是在Spring Framework之上构建的路由框架 ,它使您可以使用经过验证的企业集成模式来通过消息传递解决系 ...

  6. Spring整合JMS——基于ActiveMQ实现(一)

    Spring整合JMS--基于ActiveMQ实现(一) 1.1     JMS简介 JMS的全称是Java Message Service,即Java消息服务.它主要用于在生产者和消费者之间进行消息 ...

  7. 启动activemq_「Java」 - SpringBoot amp; ActiveMQ

    一.消息队列 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合.异步消息.流量削锋等问题,实现高性能.高可用.可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件. 目前在生产环境中使用较 ...

  8. activeMQ,spring的jmstemplate简单例子

    1.使用的是maven的结构,导入activeMQ的包 [html] view plain copy <dependency> <groupId>org.apache.acti ...

  9. activemq后台管理 看topic消息_「Java」 - SpringBoot amp; ActiveMQ

    一.消息队列 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合.异步消息.流量削锋等问题,实现高性能.高可用.可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件. 目前在生产环境中使用较 ...

最新文章

  1. 青少年编程竞赛交流群第050次活动录播
  2. 20162329 2017-2018-2《程序设计与数据结构》课程总结
  3. Xamarin XAML语言教程基本页面ContentPage占用面积内容页面的派生关系与属性
  4. 卷积神经网络中的各种池化操作
  5. 前端差异化项目合并打包
  6. 2021-11-15UA OPTI512R 傅立叶光学导论20 夫琅禾费衍射
  7. ITK:在图像中查找连接的组件
  8. 代码统计工具有哪几种_跟我学“Linux”小程序Web版开发(四):引入统计及Crash收集...
  9. 牛津大学最新调研:AI面临基准危机,NLP集中“攻关”推理测试
  10. Zibll子比主题版本V5.6-免授权版
  11. 数据太大?你该了解Hadoop分布式文件系统
  12. python课堂整理1
  13. u盘恢复软件?windows小工具不要错过!
  14. linux 临时文件 锁,Linux上开启强制性记录锁
  15. opencv 稀疏光流 稠密光流
  16. DA LAO:SpringBoot讲述 快速构建微服务体系。
  17. 理想服务员,重新上岗,你需要服务不?
  18. 【Windows】Windows装机软件
  19. 【esp32学习之路6——flash加密】
  20. Vcenter Server 7 分配许可证

热门文章

  1. Caffe编写Python layer
  2. 【javascipt】Generator函数(生成器)
  3. C 语言实例 - 删除字符串中的特殊字符
  4. oracle 表查询(二)
  5. ul 中的li取值问题
  6. SAP B1 9.1 跟踪某个查询的执行
  7. ASP.NET中Request.InputStream使用
  8. 如何解决“呈现控件时出错”的问题(转)
  9. 导航栏透明度渐变; 下拉头视图拉伸效果;勾号动画; 一段文字中点击部分可响应不同事件...
  10. 关于Unity中的transform组件(二)