Activemq实现JMS和异步调用 转载

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>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值