activemq 对象的传输

来源:互联网 发布:淘宝订单不可以评价 编辑:程序博客网 时间:2024/05/17 21:10

JMS定义了五种不同的消息正文格式,以及调用的消息类型,允许你发送并接收以一些不同形式的数据,提供现有消息格式的一些级别的兼容性。

· StreamMessage -- Java原始值的数据流

· MapMessage--一套名称-值对

· TextMessage--一个字符串对象

· ObjectMessage--一个序列化的 Java对象

· BytesMessage--一个未解释字节的数据流

1.发送者

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
packagecom.tech.gps.util;
 
importorg.springframework.jms.core.JmsTemplate;
 
importcom.tech.gps.model.Bus;
 
  
publicclass MessageSender { 
     
    privateJmsTemplate jmsTemplate; 
   
    publicvoid sendMessage(Bus bus){ 
        
        jmsTemplate.convertAndSend(bus); 
    }
 
    publicJmsTemplate getJmsTemplate() {
        returnjmsTemplate;
    }
 
    publicvoid setJmsTemplate(JmsTemplate jmsTemplate) {
        this.jmsTemplate = jmsTemplate;
    
  
2.消息转化

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
packagecom.tech.gps.util;
 
importjava.io.Serializable;
 
importjavax.jms.JMSException;
importjavax.jms.Message;
importjavax.jms.ObjectMessage;
importjavax.jms.Session;
importjavax.jms.TopicPublisher;
 
importorg.apache.activemq.command.ActiveMQObjectMessage;
importorg.springframework.jms.support.converter.MessageConversionException;
importorg.springframework.jms.support.converter.MessageConverter;
 
importcom.tech.gps.model.Bus;
 
publicclass MessageConvertForSys implementsMessageConverter { 
     
    publicMessage toMessage(Object object, Session session) 
            throwsJMSException, MessageConversionException { 
         
        System.out.println("sendMessage:"+object.toString()); 
        ActiveMQObjectMessage msg = (ActiveMQObjectMessage) session.createObjectMessage();
        msg.setObject((Serializable) object);
        returnmsg;
    
      
    publicObject fromMessage(Message message) throwsJMSException, 
            MessageConversionException { 
          
         Bus bus = null;
         if(messageinstanceofActiveMQObjectMessage){
             ActiveMQObjectMessage aMsg = (ActiveMQObjectMessage) message;
             bus=(Bus) aMsg.getObject();
         }
        returnbus; 
    }
  
}
3.接受消息

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
packagecom.tech.gps.util;
 
importjavax.jms.JMSException;
importjavax.jms.Message;
importjavax.jms.MessageListener;
importjavax.jms.ObjectMessage;
 
importcom.tech.gps.model.Bus;
 
  
 
publicclass MessageReceiver implementsMessageListener { 
       
    publicvoid onMessage(Message m) { 
         
         Bus bus= newBus();
         if(minstanceofObjectMessage){
             ObjectMessage objectMessage=(ObjectMessage) m;
         try{
              
             bus=(Bus) objectMessage.getObject();
             String busNo = bus.getBusNO();
             String xpoint = bus.getxPoint();
             String yPoint = bus.getyPoint();
             System.out.println("车编号:"+busNo+"  X:"+xpoint+"  Y:"+yPoint);
         }catch(JMSException e) {
             e.printStackTrace();
         }
         }
          
    }
 
      

0 0
原创粉丝点击