`
jacally
  • 浏览: 772125 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Activemq实现JMS和异步调用 转载

    博客分类:
  • JAVA
阅读更多
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>  
分享到:
评论

相关推荐

    结合Spring2.0和ActiveMQ进行异步消息调用

    本文将深入探讨如何结合Spring 2.0与ActiveMQ来实现异步消息调用,并分享相关知识点。 首先,Spring 2.0是一个广泛使用的Java应用框架,它提供了丰富的功能,包括依赖注入、面向切面编程(AOP)以及对其他框架如...

    activeMQ-JMS实例

    总结来说,"activeMQ-JMS实例"是一个基于Spring MVC的示例,它演示了如何使用Spring的JMS支持与ActiveMQ结合,实现消息的发送和接收。这个实例对于学习和理解JMS以及如何在实际项目中应用它是很有帮助的。通过这个...

    Spring整合Blazeds实现ActiveMQ JMS消息服务

    标题中的“Spring整合Blazeds实现ActiveMQ JMS消息服务”指的是在Java应用程序中使用Spring框架与Blazeds(一个Flex和Java之间的消息传递中间件)集成,通过ActiveMQ(一个流行的开源JMS提供商)来实现消息队列服务...

    ActiveMQ-jms jar包

    JMS API允许开发者与不同的消息中间件进行交互,从而实现异步通信和解耦。这个jar包包含了以下核心概念和接口: 1. **Message**: JMS消息是数据的载体,它可以从一个应用程序发送到另一个应用程序。消息可以是文本...

    ActiveMq+SpringMVC实现邮件异步发送

    为了实现这一功能,开发者需要在SpringMVC配置中添加ActiveMQ的相关配置,包括JMS模板和消息生产者的定义。同时,还需要编写一个邮件服务类,该类使用JMS模板发送消息到队列。而在消费者端,需要监听这个队列,接收...

    springboot集成activemq实现消息接收demo

    而ActiveMQ是Apache出品的一款开源消息中间件,它遵循JMS(Java Message Service)规范,用于处理应用程序之间的异步通信。本教程将详细介绍如何在Spring Boot项目中集成ActiveMQ,实现消息接收的Demo。 首先,我们...

    activeMQ_JMS学习资料

    ### ActiveMQ_JMS学习资料深度解析 #### 一、JMS基本构件详析 ##### 连接工厂(Connection Factory) 连接工厂是JMS架构中的关键组件,负责创建与JMS服务提供商之间的连接。例如,ActiveMQ提供了`...

    SpringBoot使用JMS的小例子(ActiveMQ实现)

    在本文中,我们将深入探讨如何使用SpringBoot框架与Apache ActiveMQ结合实现JMS(Java消息服务)的应用。SpringBoot以其简化配置和快速启动的特点,使得开发基于Java的消息传递应用程序变得非常简便。而ActiveMQ作为...

    JMS之Spring +activeMQ实现消息队列

    JMS(Java Message Service)是Java平台中用于与消息传递系统交互的标准API,而ActiveMQ是Apache软件基金会开发的一款开源消息代理,实现了JMS规范。本文将探讨如何利用Spring框架与ActiveMQ实现消息队列。 首先,...

    spring 整合 activemq 生产者和消费者 案例源码

    首先,ActiveMQ是Apache软件基金会开发的一款开源消息代理,它实现了JMS规范,允许应用程序之间进行异步通信。通过消息队列,生产者可以发送消息而不必关心消费者何时或是否接收,反之亦然,消费者可以在方便时处理...

    使用jms 操作ActiveMQ

    总之,掌握JMS与ActiveMQ的结合使用,能帮助你构建高效、健壮的分布式系统,实现应用程序间的异步通信,提升系统的灵活性和可靠性。通过不断学习和实践,你将能够熟练地在各种场景下应用这些技术。

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

    在这个"spring jms tomcat 异步消息传递入门实例"中,我们将探讨如何在Spring框架下利用JMS和Tomcat实现异步消息传递,以提高系统性能和可扩展性。 首先,理解异步消息传递的概念至关重要。在同步通信中,发送方...

    jms+sping+activeMq的例子serd和recevice

    这意味着我们将深入理解如何在Spring框架中集成JMS和ActiveMQ,以实现消息的发送与接收功能。 **JMS(Java Message Service)** JMS是一种标准的API,允许Java应用程序创建、发送、接收和读取消息。它提供了异步...

    ActiveMQ实战——实现一个简易版的聊天室

    - 通过阅读和理解提供的源码,我们可以学习到如何将ActiveMQ集成到实际项目中,以及如何设计和实现一个简单的聊天应用。 通过以上步骤,我们可以构建一个基于ActiveMQ的简单聊天室应用。这个过程中,我们将学到...

    JMS中间件ActiveMQ介绍

    通过以上介绍,我们可以看到JMS 和 ActiveMQ 提供了一种高效、可靠的异步通信机制,适用于构建复杂的分布式系统。无论是简单的点对点通信还是复杂的发布/订阅模型,JMS 和 ActiveMQ 都能提供相应的支持,满足不同...

    activemq消息中间件的使用demo,以及spring集合jms实现消息发送和处理。

    ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它遵循Java消息服务...了解这些知识点后,你可以构建一个健壮的消息驱动系统,利用ActiveMQ和Spring JMS实现组件间的异步通信,提高系统的稳定性和可扩展性。

    ActiveMQ与Spring整合之异步发送邮件

    通过以上步骤,我们可以实现ActiveMQ与Spring的整合,利用消息队列的异步特性发送邮件,提高系统的并发处理能力和响应效率。在实际项目中,这种模式还可以应用于其他耗时的操作,如批量数据处理、日志记录等。

    spring使用activeMQ实现消息发送

    在IT行业中,Spring框架是Java应用开发的基石,而ActiveMQ则是Apache组织开发的一款开源的消息中间件,用于处理异步通信和消息队列。本文将深入探讨如何在Spring环境中使用ActiveMQ来实现消息的发送与接收,以提高...

    基于SignalR、ActiveMQ实现webform的实时消息广播

    通过ActiveMQ,应用可以实现异步处理,提高系统的可扩展性和响应速度。 在这个项目中,SignalR与ActiveMQ的结合使用,可以实现Webform应用的高效实时消息传递。首先,服务器端使用ActiveMQ作为消息代理,接收和发送...

    JMS-ActiveMQ入门实例

    总结来说,这个JMS-ActiveMQ入门实例将帮助我们理解如何在Java应用程序中使用消息队列和主题,实现可靠的异步通信,并处理网络故障。通过实践这些例子,我们可以更好地掌握JMS和ActiveMQ的使用,为构建可扩展和高...

Global site tag (gtag.js) - Google Analytics