JMS定义了五种不同的消息正文格式,以及调用的消息类型,允许你发送并接收以一些不同形式的数据,提供现有消息格式的一些级别的兼容性。
· StreamMessage -- Java原始值的数据流
· MapMessage--一套名称-值对
· TextMessage--一个字符串对象
· ObjectMessage--一个序列化的 Java对象
· BytesMessage--一个未解释字节的数据流
1.发送者
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;
}
}
2.消息转化
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;
}
}
3.接受消息
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();
}
}
}
}
源码下载地址:
http://download.csdn.net/detail/allen_gang/6642167
分享到:
相关推荐
标签:activemq-spring-5.9.1-javadoc.jar,activemq,spring,5.9.1,javadoc,jar包下载,依赖包
标签:activemq-spring-5.5.1-sources.jar,activemq,spring,5.5.1,sources,jar包下载,依赖包
activemq-all-5.8.0.jar 下载 activemq-all-5.8.0.jar 下载 activemq-all-5.8.0.jar 下载 activemq-all-5.8.0.jar 下载 activemq-all-5.8.0.jar 下载
标签:activemq-spring-5.4.2-sources.jar,activemq,spring,5.4.2,sources,jar包下载,依赖包
标签:activemq-spring-5.4.2-javadoc.jar,activemq,spring,5.4.2,javadoc,jar包下载,依赖包
Spring-ActiveMQ-jar
activemq-pool-5.8.0-sources.jar
apache-activemq-5.16.0.zip
赠送jar包:activemq-core-5.7.0.jar; 赠送原API文档:activemq-core-5.7.0-javadoc.jar; 赠送源代码:activemq-core-5.7.0-sources.jar; 包含翻译后的API文档:activemq-core-5.7.0-javadoc-API文档-中文...
赠送jar包:activemq-protobuf-1.1.jar; 赠送原API文档:activemq-protobuf-1.1-javadoc.jar; 赠送源代码:activemq-protobuf-1.1-sources.jar; 包含翻译后的API文档:activemq-protobuf-1.1-javadoc-API文档-...
apache-activemq-5.9.0-bin.zip
apache-activemq-5.8.0-bin.zip
apache-activemq-5.15.15二进制包,安装包,apache-activemq-5.15.15-bin.tar.gz
activemq-all-5.2.0.JAR包,欢迎下载。编写java中间件的时候会用到。这是activemq实现的jms中间件。希望能帮助到你。
解压缩apache-activemq-5.5.1-bin.zip,然后双击apache-activemq-5.5.1\bin\activemq.bat运行ActiveMQ程序。 包含了apache-activemq-5.5.1-bin.zip以及ActiveMQ一个helloworld的demo启动ActiveMQ以后,登陆:...
activemq-web-console的默认使用方式是通过在activemq.xml中导入jetty.xml配置一个jetty server来实现的。其实activemq-web-console完全可以和activemq-broker分开来部署。 activemq-web-console包含3个apps, 1.一...
activemq-cpp-library-3.9.5编译的C++库文件,支持vs2015,vs2017,包括了依赖的库文件和头文件,可以在项目中直接使用。
apache-activemq-5.15.9-bin.zip apache-activemq-5.15.9-bin.zip apache-activemq-5.15.9-bin.zip
spring-boot-activemq-consumer 源码
activemq-protobuf-1.1.jar;activemq-protobuf-1.1.jar