`

处理JMS消息

    博客分类:
  • JMS
阅读更多

Activemq实现JMS和异步调用 转载

关键字: jms activemq

java 代码: Hello.java
  1. import java.io.Serializable;  
  2.    
  3.  /**Hello.java用来传递JAVA对象 
  4.  * Author: cjp 
  5.  * Date: 2005-11-8 
  6.  * Time: 22:24:02 
  7.  */  
  8.  public class Hello implements Serializable {  
  9.  private String id;  
  10.  private Hello hello;  
  11.  private PointList pointList;  
  12.  public String getId() {  
  13.  return id;  
  14.  }  
  15.    
  16.  public void setId(String id) {  
  17.  this.id = id;  
  18.  }  
  19.    
  20.  public Hello getHello() {  
  21.  return hello;  
  22.  }  
  23.    
  24.  public void setHello(Hello hello) {  
  25.  this.hello = hello;  
  26.  }  
  27.  }  
java 代码:SpringTest .java
  1. import org.springframework.jms.core.JmsTemplate;  
  2.   import org.springframework.jms.core.MessageCreator;  
  3.   import org.springframework.test.AbstractDependencyInjectionSpringContextTests;  
  4.     
  5.   import javax.jms.*;  
  6.     
  7.   /** 
  8.    
  9.   *发送JMS消息 
  10.    
  11.   */  
  12.   public class SpringTest extends AbstractDependencyInjectionSpringContextTests  
  13.   {  
  14.   protected String[] getConfigLocations()  
  15.   {  
  16.   return new String[]{"file:D:\\wosame\\test\\com\\wosame\\room\\jms\\jms.xml"};  
  17.   }  
  18.     
  19.   public void testSendMessage() throws Exception  
  20.   {  
  21.   JmsTemplate jmsTemplate = (JmsTemplate) applicationContext.getBean("jmsTemplate");  
  22.   jmsTemplate.send(new MessageCreator()  
  23.   {  
  24.   public Message createMessage(Session session) throws JMSException  
  25.   {  
  26.   ObjectMessage message=session.createObjectMessage();  
  27.   Hello hello=new Hello();  
  28.   hello.setId("test");  
  29.   message.setObject(hello);  
  30.   return message;  
  31.   }  
  32.   });  
  33.   }  
  34.   }  
HelloMDP .java
java 代码
  1. /** 
  2.   
  3.  处理JMS消息 
  4.   
  5.  */  
  6.    
  7.  import org.apache.commons.logging.Log;  
  8.  import org.apache.commons.logging.LogFactory;  
  9.  import javax.jms.*;  
  10.    
  11.  public class HelloMDP implements MessageListener  
  12.  {  
  13.  protected Log log = LogFactory.getLog(HelloMDP.class);  
  14.    
  15.  public void onMessage(Message message)  
  16.  {  
  17.  try  
  18.  {  
  19.  ObjectMessage objMessage = (ObjectMessage) message;  
  20.  Hello hello= (Hello) objMessage.getObject();  
  21.  System.out.println("hello.getId() = " + hello.getId());  
  22.  } catch (JMSException e)  
  23.  {  
  24.  log.error("Parse failed", e);  
  25.  }  
  26.  }  
  27.  }  
=jms.xml==
xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.  <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"  
  3.  "http://www.springframework.org/dtd/spring-beans.dtd">  
  4.    
  5.  <beans>  
  6.    
  7.  <!--嵌入式的JMS连接,也就是跟随JVM一起启动,可以参看activemq的文档-->  
  8.  <bean id="connectionFactory" class="org.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="vm://localhost"/>  
  9.  <property name="useEmbeddedBroker" value="true"/>  
  10.  </bean>  
  11.    
  12.  <!--消息监听器,也就是消息的具体的处理器-->  
  13.  <bean id="HelloMDP" class="HelloMDP"/>  
  14.    
  15.  <!--jms监听需要JTA容器的支持-->  
  16.  <bean id="activeMQContainer" class="org.activemq.jca.JCAContainer">  
  17.  <property name="workManager">  
  18.  <bean id="workManager" class="org.activemq.work.SpringWorkManager"/>  
  19.  </property>  
  20.  <property name="resourceAdapter">  
  21.  <bean id="activeMQResourceAdapter" class="org.activemq.ra.ActiveMQResourceAdapter">  
  22.  <property name="serverUrl" value="vm://localhost"/>  
  23.  </bean>  
  24.  </property>  
  25.  </bean>  
  26.    
  27.  <!--消息的消费者,也就是将监听器与具体的队列关联-->  
  28.  <bean id="HelloQueueConsumer" factory-method="addConnector" factory-bean="activeMQContainer">  
  29.  <property name="activationSpec">  
  30.  <bean class="org.activemq.ra.ActiveMQActivationSpec">  
  31.  <property name="destination" value="Hello.Queue"/>  
  32.  <property name="destinationType" value="javax.jms.Queue"/>  
  33.  </bean>  
  34.  </property>  
  35.  <property name="ref" value="HelloMDP"/>  
  36.  </bean>  
  37.    
  38.  <!--spring的JMS template,用来发送JMS消息到指定的队列-->  
  39.  <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">  
  40.  <property name="defaultDestinationName" value="Hello.Queue"/>  
  41.  <property name="connectionFactory" ref="connectionFactory"/>  
  42.  </bean>  
  43.  </beans>  
分享到:
评论

相关推荐

    Spring+weblogic接收JMS消息

    标题"Spring+weblogic接收JMS消息"涉及到的核心知识点是Spring框架与WebLogic Server之间的整合,以及如何利用Spring来处理JMS消息。下面将详细讲解这两个方面的内容。 1. **Spring对JMS的支持**: - Spring通过`...

    JMS消息处理优化方案

    JMS消息处理优化方案

    Spring JMS消息处理-不基于JNDI

    Spring JMS提供了一组高级抽象,如`JmsTemplate`和`MessageListenerContainer`,使得处理JMS消息变得更加简单。`JmsTemplate`用于发送和接收消息,而`MessageListenerContainer`则用于监听消息队列并执行相应的回调...

    JMS与MDB介绍

    JMS与MDBMessage Driven Bean(MDB)是Java EE中的一种特殊类型的Enterprise Bean,专门用于处理JMS消息。MDB作为消息的消费者,可以异步地接收和处理消息,极大地简化了后台服务的编程模型。当消息到达队列或主题时...

    JMS消息队列机制及案例

    **JMS消息队列机制详解** Java Message Service(JMS)是Java平台中用于企业级应用间异步通信的一种标准接口。它定义了生产、发送、接收和读取消息的标准API,使得不同的消息中间件提供商可以提供兼容的实现,便于...

    JMS资源

    9. **消息驱动bean(Message Driven Bean,MDB)**:在Java EE环境中,MDB是一种特殊的EJB,它能自动接收和处理JMS消息。 JMS提供了两种消息模型: - **点对点(Point-to-Point, P2P)**:基于队列的消息传递,每个...

    大型系统中使用JMS优化技巧–Sun OpenMQ

    在传送过程中,系统处理JMS消息分为以下两类: ■ 有效负荷消息,由生成方发送给使用方的消息。 ■ 控制消息,代理与客户端运行时环境之间传送的私有消息,用于确保有效负荷消息成功传送和控制跨连接的消息流。 ...

    jms.rar_weblogic8 spring jms

    Spring的`Message`接口提供了创建和处理JMS消息的方法。如果文件包含消息监听器的配置,那么`MessageListener`接口的实现类将被用来处理接收到的消息。 在配置完成后,我们需要在代码中注入这些bean以使用JMS功能。...

    Spring发送接收JMS消息

    **Spring与JMS消息传递** 在Java世界中,Java Message Service (JMS) 是一个标准接口,用于在分布式环境中发送和接收消息。Spring框架提供了一种简单而强大的方式来集成JMS,使得开发者可以轻松地在应用中实现异步...

    EJB TO JMS

    EJB可以是会话Bean、实体Bean或消息驱动Bean,其中消息驱动Bean是专门设计用来接收和处理JMS消息的。 JMS Topic是一种发布/订阅模式的消息传递机制,其中多个订阅者(称为消费者)可以接收到由一个或多个发布者...

    WebLogic 11g JMS图文配置 和 详细的示例代码

    3. **创建JMS服务器**:JMS服务器是实际处理JMS消息的地方,它需要与一个特定的集群或服务器实例关联。 4. **配置JMS资源**:这包括创建消息代理(如队列工厂和主题工厂)以及物理队列和主题。消息代理为应用程序...

    JMS-customer.rar_jms

    2. **消息驱动的EJB(Message-Driven EJB)**:这是一种特殊类型的EJB,专门设计用于处理JMS消息。在顾客管理应用中,消息驱动的EJB可能作为消费者,监听特定的消息队列,当接收到新消息时,自动触发处理逻辑,例如...

    JMS消息发送及订阅

    在这个主题中,我们将深入探讨JMS消息的发送和订阅,以及如何通过Apache Camel这一集成框架来实现。 **JMS核心概念** 1. **消息**: JMS中的基本单元,它包含了要传递的数据。 2. **生产者**: 创建并发送消息的应用...

    mq、jms消息处理jar包

    在“mq、jms消息处理jar包”中,包含的jar文件通常是为了让Java应用能够与IBM MQ交互,使用JMS API。这些jar包可能包括以下部分: 1. `com.ibm.mq.allclient.jar`:这是IBM MQ客户端库的核心,包含了与MQ服务器通信...

    Spring JMS 消息处理-基于JNDI

    这篇博客“Spring JMS 消息处理-基于JNDI”将深入探讨如何在Spring应用中使用JMS进行消息处理,并利用JNDI(Java Naming and Directory Interface)来查找和配置消息资源。 JMS是Java平台上的一个标准接口,它定义...

    JMS 介绍及其在 EJB 2.0 中的用法

    MessageDrivenBean是EJB 2.0引入的新类型,专门设计用于处理JMS消息。这种bean不需要像传统的会话bean那样显式调用,而是通过JMS系统自动激活,当有消息到达其监听的队列或主题时,它会自动触发消息的处理方法。...

    JMS消息模型 JMS学习.doc

    - **异步处理**:JMS允许应用程序发送消息后继续执行其他任务,而接收方可以在准备好处理消息时才接收,提高了系统的响应速度和效率。 - **解耦**:通过消息传递,生产者和消费者无需直接相互了解,降低了系统间的...

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

    5. **处理消息**:消息可以是TextMessage、ObjectMessage、BytesMessage等类型,根据业务需求进行处理。 ### 四、部署和测试 1. 将包含JMS配置和应用程序的EAR文件部署到WebLogic Server。 2. 使用WebLogic提供的...

    JMS与MDB介绍.doc

    **MDB(Message Driven Bean)** 是Java EE(现在称为Jakarta EE)中的一个组件,它是EJB(Enterprise JavaBeans)的一部分,专门用于处理JMS消息。MDB是一种无状态的会话bean,其主要职责是监听并响应JMS队列或主题...

Global site tag (gtag.js) - Google Analytics