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
|
package
com.tech.gps.util;
import
org.springframework.jms.core.JmsTemplate;
import
com.tech.gps.model.Bus;
public
class
MessageSender {
private
JmsTemplate jmsTemplate;
public
void
sendMessage(Bus bus){
jmsTemplate.convertAndSend(bus);
}
public
JmsTemplate getJmsTemplate() {
return
jmsTemplate;
}
public
void
setJmsTemplate(JmsTemplate jmsTemplate) {
this
.jmsTemplate = jmsTemplate;
}
}
|
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
|
package
com.tech.gps.util;
import
java.io.Serializable;
import
javax.jms.JMSException;
import
javax.jms.Message;
import
javax.jms.ObjectMessage;
import
javax.jms.Session;
import
javax.jms.TopicPublisher;
import
org.apache.activemq.command.ActiveMQObjectMessage;
import
org.springframework.jms.support.converter.MessageConversionException;
import
org.springframework.jms.support.converter.MessageConverter;
import
com.tech.gps.model.Bus;
public
class
MessageConvertForSys
implements
MessageConverter {
public
Message toMessage(Object object, Session session)
throws
JMSException, MessageConversionException {
System.out.println(
"sendMessage:"
+object.toString());
ActiveMQObjectMessage msg = (ActiveMQObjectMessage) session.createObjectMessage();
msg.setObject((Serializable) object);
return
msg;
}
public
Object fromMessage(Message message)
throws
JMSException,
MessageConversionException {
Bus bus =
null
;
if
(message
instanceof
ActiveMQObjectMessage){
ActiveMQObjectMessage aMsg = (ActiveMQObjectMessage) message;
bus=(Bus) aMsg.getObject();
}
return
bus;
}
}
|
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
|
package
com.tech.gps.util;
import
javax.jms.JMSException;
import
javax.jms.Message;
import
javax.jms.MessageListener;
import
javax.jms.ObjectMessage;
import
com.tech.gps.model.Bus;
public
class
MessageReceiver
implements
MessageListener {
public
void
onMessage(Message m) {
Bus bus=
new
Bus();
if
(m
instanceof
ObjectMessage){
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();
}
}
}
}
|