`

Spring JMS与IBM MQ 整合,监听

    博客分类:
  • Java
阅读更多
项目中因为要监听IBM MQ 队列的消息,想到用Spring JMS来做

Spring JMS介绍
Spring对JMS(Java Message Service)的封装,简化了代码量,便于使用

下面直接贴代码来说明
  • 定义MQ连接工厂
  • 	<bean id="testFeMQQueueConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
    		<property name="hostName" value="${HOSTNAME}" />
    		<property name="port" value="${PORT}" />
    		<property name="queueManager" value="${MQMANAGERNAME}" />
    		<property name="channel" value="${CHANNEL}" />
    		<property name="CCSID" value="${CCSID}" />
    		<property name="transportType" value="1" />
    	</bean>
    
  • 定义工厂适配器
  • 	<bean id="testUserCredentialsConnectionFactoryAdapter"
    		class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
    		<property name="targetConnectionFactory" ref="testMQQueueConnectionFactory" />
    	</bean>
    
  • 队列定义
  • 	<bean id="testMQQueue" class="com.ibm.mq.jms.MQQueue">
    		<constructor-arg name="queueManagerName" value="${MQMANAGERNAME}" />
    		<constructor-arg name="queueName" value="${MQ_QUEUE_NAME}" />
    	</bean>
    
  • 队列监听容器
  • 	<bean id="testListenserContainer"
    		class="org.springframework.jms.listener.DefaultMessageListenerContainer"
    		lazy-init="false">
    		<property name="connectionFactory"
    			ref="testUserCredentialsConnectionFactoryAdapter" />
    		<property name="destination" ref="testMQQueue" />
    		<property name="messageListener" ref="testMessageListener" />
    		<property name="sessionTransacted" value="false" />
    		<!-- 设置固定的线程数 -->
    		<property name="concurrentConsumers" value="10"></property>
    	</bean>
    
  • 消息监听
  • package com.liyghting.mq.listener;
    
    import javax.jms.JMSException;
    import javax.jms.Message;
    import javax.jms.MessageListener;
    import javax.jms.TextMessage;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.stereotype.Service;
    
    
    @Service
    public class TestMessageListener implements MessageListener {
    	private static final Logger logger  = LoggerFactory.getLogger(TestMessageListener .class);	
    	@Override
    	public void onMessage(Message message) {
    	    TextMessage textMessage = (TextMessage)message;
    		try {
    			String msg = textMessage.getText();
    			logger.info("消息[{}]",msg);
    		} catch (JMSException e) {
    			logger.error("消息监听异常", e);
    		}
    	}
    }
    
    分享到:
    评论

    相关推荐

      Spring 集成 IBM MQ 监听配置

      Spring 集成 IBM MQ 监听配置,包括用户管理配置和一些基础配置信息

      在spring boot中使用jms集成IBM-MQ和TLQ,包含普通队列和主题订阅两种模式,并实现按需加载

      1) 本工程主要演示在SPRING BOOT工程中怎样使用JMS集成IBM-MQ及TLQ两种消息中间件产品 2) 使用SPRING BOOT Conditional机制实现了两种产品按需加载,工程会根据配置文件开关动态加载 3) 实现了普通队列消息发送与...

      spring boot jsm ibmmq topic queue

      - 然后,配置IBM MQ连接的相关属性,如`spring.jms_ibmmq.connectionFactory.jndi-name`、`spring.jms_ibmmq.queueManager`、`spring.jms_ibmmq.channel`、`spring.jms_ibmmq.hostName`、`spring.jms_ibmmq.port`、...

      Spring链接IBM MQ Demo

      在本文中,我们将深入探讨如何使用Spring框架与IBM MQ进行集成,实现消息队列的通信。这个Demo项目展示了如何在Spring应用中配置和使用IBM MQ 7.5版本,确保了其兼容性和有效性。 首先,我们需要理解Spring框架的...

      SpringJMS示例代码

      SpringJMS是Spring框架的一部分,它提供了一种与Java消息服务(JMS)进行交互的简单方式。在本文中,我们将深入探讨SpringJMS的基本概念、如何与ActiveMQ集成,以及如何通过示例代码理解其工作原理。 1. **Spring...

      Spring + JMS + MQ Connection

      总结一下,Spring与JMS的整合主要涉及ConnectionFactory的配置、JmsTemplate的使用以及监听器容器的设置。通过这些配置,我们可以方便地在Spring应用中实现基于消息的通信,从而提高系统的可扩展性和解耦性。在实际...

      IBM MQ与JBOSS整合,通过SPRING来读写消息

      本文将深入探讨如何将IBM WebSphere MQ(简称IBM MQ)与JBoss应用程序服务器整合,并利用Spring框架来实现消息的读写。这一整合有助于提升系统的可扩展性和解耦性,使应用程序能够通过消息传递进行异步通信。 首先...

      基于soap over jms 的websphere mq与axis2的实现

      标题中的“基于soap over jms 的websphere mq与axis2的实现”涉及到的是在企业级应用中使用Web服务和消息中间件技术的具体实践。这里,`SOAP over JMS`指的是通过Java消息服务(JMS)传输SOAP消息,而`Websphere MQ`...

      spring-boot-ibmmq

      标题“spring-boot-ibmmq”表明我们正在讨论一个基于Spring Boot的应用程序,该应用程序集成了IBM MQ(Message Queue)技术。Spring Boot是Java生态系统中的一个流行框架,它简化了创建独立、生产级别的Spring应用...

      JMS实例,整合spring,含jar

      1. **添加依赖**:首先,你需要在项目的构建文件(如Maven的pom.xml或Gradle的build.gradle)中添加Spring和JMS相关的依赖库,包括Spring的JMS模块以及JMS提供者的特定实现,例如Apache ActiveMQ、IBM MQ或Oracle ...

      Java网络编程--基于Spring的JMS编程

      6. **JMS模板的配置**:Spring的配置文件中,可以通过`&lt;bean&gt;`标签来配置`JmsTemplate`,设置连接工厂、目的地等属性,使其能与实际的JMS提供者(如ActiveMQ、IBM WebSphere MQ等)对接。 7. **消息驱动的POJO(MDP...

      Spring JMS 消息处理-基于JNDI

      消息中间件如ActiveMQ、RabbitMQ、IBM WebSphere MQ等,通过JMS接口与应用程序交互。 Spring JMS是Spring框架对JMS的封装,它提供了一种声明式的方式来配置JMS模板、监听容器等,极大地简化了开发者的任务。Spring ...

      Spring Boot + RWD + JMS/MQ

      对于MQ,如IBM WebSphere MQ或RabbitMQ,Spring Boot也有相应的适配器来简化整合。 将这三个技术结合在一起,我们可以构建一个高效、响应式的Web应用,同时利用消息队列处理后台任务。例如,Spring Boot可以作为...

      jms-spring.zip

      在Spring中,JMS的集成主要依赖于`spring-jms`模块,该模块提供了对各种JMS供应商的抽象和支持,例如ActiveMQ,RabbitMQ,IBM WebSphere MQ等。ActiveMQ是Apache软件基金会的一个开源项目,是一个功能丰富的JMS提供...

      使用Spring JMS轻松实现异步消息传递.pdf

      1. 配置 JMS 容器(如 ActiveMQ、IBM WebSphere MQ 或 JBoss MQ)。 2. 在 Spring 配置文件中定义 JmsTemplate 和消息目的地(队列或主题)。 3. 使用 JmsTemplate 的 send 方法发送消息,指定目的地和消息内容。 4....

      spring jms tomcat 异步消息传递入门实例

      2. **Tomcat与JMS**:虽然Tomcat本身并不直接支持JMS,但可以在Tomcat中部署一个支持JMS的容器,如Apache ActiveMQ或IBM WebSphere MQ。这些服务器将作为消息代理,接收和分发消息。在Tomcat中配置JMS,需要在`...

      ibm-messaging-jms:使用Spring如何在ibm jms队列中发送和收听消息的工作示例

      通过设置`DefaultMessageListenerContainer`的`transactionManager`属性,可以将消息监听与Spring事务管理相结合。 7. **异常处理** 在处理消息时,可能会遇到各种异常。通过实现`MessageListenerAdapter`并覆盖`...

      三种Java向MQ发送消息的方法 -- java代码

      如果项目中使用了Spring框架,可以通过Spring的JMS支持简化与MQ的交互。Spring提供了一个抽象层,可以简化连接管理、事务处理和异常处理。配置MQ连接工厂和目的地后,只需编写一个监听器或模板方法即可发送消息。...

      spring-jms-demo

      为了运行和理解这个示例,你需要一个兼容JMS的服务器,如Apache ActiveMQ或IBM WebSphere MQ。你还需要正确配置服务器的连接信息,如URL、用户名和密码,以确保Spring应用能够连接并交互。 总的来说,"spring-jms-...

      IBM jms 培训

      - **Spring框架集成**:Spring提供了JMS模板和监听器容器,简化了JMS的使用。 7. **最佳实践** - **性能优化**:例如,批量发送消息、合理设置消息缓存等。 - **安全性**:配置JMS提供者的安全策略,确保只有...

    Global site tag (gtag.js) - Google Analytics