`
liwanchun_xd
  • 浏览: 123551 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

使用Spring实现JMS接收消息(普通事务)

阅读更多
1、开发环境: eclipse3.2+jdk1.5+jboss4.2.2
2、使用XA实现事务。

消息接收器代码:
public class ReceiverListener implements SessionAwareMessageListener {

public void onMessage(Message message, Session session)
throws JMSException {
if (message instanceof TextMessage) {
try {
System.out.println("New Receive Message: " +
((TextMessage) message).getText());
} catch (JMSException ex) {
throw new RuntimeException(ex);
}
} else {
throw new IllegalArgumentException(
"Message must be of type TextMessage");
}
}

}

Spring配置:
<bean id="userJmsUtil" class="com.hc360.mmt.common.UserJmsTransactionUtil"> 
<property name="destinationJndi" value="queue/A"></property> 
<property name="connectionFactoryJndi" value="UIL2ConnectionFactory"></property> 
<property name="factoryInitial" value="org.jnp.interfaces.NamingContextFactory"></property> 
<property name="providerUrl" value="localhost"></property> 
<property name="factoryUrlPkgs" value="org.jboss.naming:org.jnp.interfaces"></property> 
</bean> 

<bean id="jmsQueueConnectionFactory" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> 
<property name="targetObject" ref="userJmsUtil"></property> 
<property name="targetMethod" value="getConnectionFactory"></property> 
</bean> 


<bean id="destination" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> 
<property name="targetObject" ref="userJmsUtil"></property> 
<property name="targetMethod" value="getDestination"></property> 
</bean>

<!-- this is the Message Driven POJO (MDP) -->
<bean id="messageListener" class="com.hc360.jms.ReceiverListener" />

<!-- and this is the attendant message listener container -->
<bean id="listenerContainer1"
  class="org.springframework.jms.listener.DefaultMessageListenerContainer">
  <property name="concurrentConsumers" value="1"/>
  <property name="connectionFactory" ref="jmsQueueConnectionFactory" />
  <property name="destination" ref="destination" />
  <property name="messageListener" ref="messageListener" />
  <property name="transactionManager" ref="transactionManagerCommon" />
</bean>


<bean id="transactionManagerCommon" class="org.springframework.jms.connection.JmsTransactionManager">
  <property name="connectionFactory" ref="jmsQueueConnectionFactory" />
</bean>

分享到:
评论

相关推荐

    Spring发送接收JMS消息

    本篇文章将深入探讨如何使用Spring进行JMS消息的发送和接收。 ### 1. JMS概述 JMS是一种中间件协议,它定义了生产、存储和消费消息的标准接口。JMS提供两种类型的消息模型:点对点(Point-to-Point, P2P)和发布/...

    Spring In Action 使用Spring发送和接收JMS消息

    《Spring In Action:使用Spring发送和接收JMS消息》 在Java消息服务(Java Message Service,JMS)中,Spring框架提供了一种高效且灵活的方式来处理消息传递。JMS允许应用程序在分布式环境中发送和接收消息,它...

    Spring整合JMS(四)——事务管理

    本文将深入探讨如何在Spring中整合JMS并实现事务管理,以确保消息传递的可靠性和一致性。 首先,我们需要理解Spring的声明式事务管理。Spring提供了一种强大的声明式事务管理机制,它允许我们在不编写任何事务控制...

    spring-jms入门

    - **MessageListenerContainer**:通过实现`MessageListener`接口,Spring容器会自动启动监听线程,接收到消息后调用监听器方法。 - **JmsTemplate.receive()**:阻塞式接收,调用后会等待直到有消息到达。 **7. ...

    Spring-JMS把企业消息处理变容易.doc

    此外,它还包含了对JMS的PlatformTransactionManager实现,使得JMS能够参与到Spring的事务管理中,确保事务的一致性和可靠性。 IBM WebSphere MQ是一个强大的消息中间件,它通过队列和事务机制确保消息在网络中的...

    JMS之Spring +activeMQ实现消息队列

    总结起来,"JMS之Spring + ActiveMQ实现消息队列"涉及到的关键知识点包括:Spring框架的JMS支持、ActiveMQ的使用、ConnectionFactory的配置、JmsTemplate和MessageListener的实现,以及消息队列在解决系统解耦和异步...

    Spring+JMS+消息处理

    Spring JMS框架是Spring项目的一部分,其主要目标是简化Java Message Service (JMS) API的使用,使得开发人员能够更容易地与消息中间件进行交互。通过Spring JMS,开发者可以更加专注于业务逻辑而非底层的消息传递...

    spring+jms+jta事务的消息发送和消息消费

    在压缩包文件"shanhy-springjms"中,可能包含了以下内容: 1. `pom.xml`:Maven项目的配置文件,定义了项目依赖,包括Spring、JMS和JTA相关的库。 2. `src/main/java`:源代码目录,可能有Spring配置类、消息生产者...

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

    在Java中,Spring框架提供了强大而灵活的支持,使得开发人员能够轻松地实现基于Java消息服务(JMS)的网络编程。JMS是一个标准接口,它允许应用程序创建、发送、接收和读取消息,这些消息可以在不同的应用之间传递,...

    Spring+Weblogic JMS

    在本项目中,Spring与WebLogic JMS(Java消息服务)的集成展示了如何在Spring环境中使用消息队列进行通信。 WebLogic JMS是Oracle WebLogic Server提供的消息中间件,它遵循JMS规范,用于在分布式环境中传递消息,...

    SpringJMS示例代码

    SpringJMS提供了事务支持,可以在发送或接收消息时启用JMS事务,确保消息传递的可靠性。 9. **错误处理和异常传播** SpringJMS允许开发者捕获和处理JMS异常,例如消息无法发送或接收时,可以通过Spring的异常处理...

    spring-jms-4.3.4.RELEASE.zip

    3. **Message-driven POJOs (MDPs)**:Spring支持将普通的Java类转换为消息驱动的组件,只需实现MessageListener接口,即可处理由JMS消息触发的业务逻辑。 在Spring JMS 4.3.4.RELEASE中,主要的特性改进和优化包括...

    Spring整合JMS——实现收发消息

    本篇文章将详细探讨如何通过Spring框架整合JMS,特别是使用ActiveMQ作为消息代理来实现消息的收发功能。 首先,我们需要理解Spring对JMS的支持。Spring提供了`org.springframework.jms`包,包含了一系列接口和类,...

    spring-jms

    1. **JMS模板(JmsTemplate)**: 这是Spring提供的一个核心工具类,简化了发送和接收JMS消息的过程。它提供了同步和异步发送消息的方法,支持点对点(P2P)和发布/订阅(Pub/Sub)模型。 2. **MessageListener容器*...

    spring-jms源码

    Spring JMS提供了对JMS API的高度封装,简化了消息生产者和消费者的实现,同时也支持事务管理和消息确认机制,极大地提升了开发效率和代码的可维护性。 首先,我们来看看Spring JMS的核心组件。主要包括...

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

    Java 消息服务 (JMS) API 是实现异步消息传递的标准,但其原始使用方式涉及复杂的资源管理和异常处理。 传统的 JMS 实现涉及多个步骤,包括 JNDI(Java Naming and Directory Interface)查询来查找队列连接工厂和...

    weblogic中使用JMS发送和接受消息

    - **事务**:在JMS会话中,可以使用事务确保消息的一致性。 - **消息选择器**:允许消费者只接收满足特定条件的消息。 - **JMS管理**:通过JMX(Java Management Extensions)管理JMS资源。 通过理解并熟练掌握上述...

    activemq与spring整合发送jms消息入门实例

    在Java世界中,ActiveMQ和Spring的整合是企业级应用中常见的消息中间件解决方案,用于实现JMS(Java Message Service)消息传递。本教程将深入探讨如何将这两个强大的工具结合在一起,以创建一个简单的发送JMS消息的...

    jms整合spring工程

    **正文** ...总的来说,"jms整合spring工程"是一个实用的示例,帮助开发者理解和实践在Spring中使用JMS与ActiveMQ进行消息通信。通过深入研究该项目,可以掌握JMS和Spring集成的关键技术和最佳实践。

    JMS_Spring集成所需jar

    4. **配置事务管理** - 如果需要事务支持,配置Spring的事务管理器,确保消息发送和接收都在事务中进行。 5. **测试和优化** - 测试应用程序,确保消息的正确发送和接收,同时根据需求调整消息的持久化、并发处理等...

Global site tag (gtag.js) - Google Analytics