ActiveMQ的消息接收的问题(使用MessageListener) [问题点数:88分,结帖人villagehead]

一键查看最优答案

确认一键查看最优答案?
本功能为VIP专享,开通VIP获取答案速率将提升10倍哦!
Bbs6
本版专家分:9056
结帖率 100%
Bbs5
本版专家分:3668
Bbs2
本版专家分:399
Bbs6
本版专家分:9056
Bbs6
本版专家分:9056
Bbs6
本版专家分:9056
Bbs1
本版专家分:2
Bbs1
本版专家分:11
Blank
签到新秀 累计签到获取,不积跬步,无以至千里,继续坚持!
Bbs3
本版专家分:528
Bbs3
本版专家分:528
ActiveMQ 有时候接收不到消息
<em>使用</em><em>ActiveMQ</em>做个小例子的时候, 有时候<em>消息</em><em>接收</em>不到,有时候可以,没有被消费的<em>消息</em>,再重启后又能全部<em>接收</em>到,不知道<em>问题</em>出在哪。谢谢各位大神指点 Spring <em>ActiveMQ</em> 配置如下 ``` package com.zym.robot.config; import org.apache.activemq.<em>ActiveMQ</em>ConnectionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Lazy; import org.springframework.jms.connection.CachingConnectionFactory; import com.zym.robot.constant.Constant; @Configuration @Lazy(false) public class ConnectionFactoryConfig{ @Autowired private ApplicationUtil applicationUtil; @Bean(name="activeMQConnectionFactory") public <em>ActiveMQ</em>ConnectionFactory activeMQConnectionFactory(){ <em>ActiveMQ</em>ConnectionFactory activeMQConnectionFactory = new <em>ActiveMQ</em>ConnectionFactory(); activeMQConnectionFactory.setBrokerURL(Constant.activemq_brokerurl); activeMQConnectionFactory.setUserName(Constant.activemq_username); activeMQConnectionFactory.setPassword(Constant.activemq_password); activeMQConnectionFactory.setTrustAllPackages(true); return activeMQConnectionFactory; } @Bean(name="connectionFactory") public CachingConnectionFactory connectionFactory(){ CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory(); cachingConnectionFactory.setTargetConnectionFactory((<em>ActiveMQ</em>ConnectionFactory)applicationUtil.getBean("activeMQConnectionFactory")); cachingConnectionFactory.setSessionCacheSize(10); return cachingConnectionFactory; } } ``` ``` package com.zym.robot.config; import javax.jms.Destination; import org.apache.activemq.command.<em>ActiveMQ</em>Queue; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Lazy; import org.springframework.jms.connection.CachingConnectionFactory; import org.springframework.jms.core.JmsTemplate; @Configuration @Import(ConnectionFactoryConfig.class) @Lazy(false) public class MQTemplateFactory { @Autowired @Qualifier("connectionFactory") private CachingConnectionFactory connectionFactory; @Autowired private ApplicationUtil applicationUtil; /** * @author ZhaoYM * @description 微信<em>消息</em>队列 * @return */ @Bean(name="messageQueueTemplate") public JmsTemplate messageQueueTemplate(){ JmsTemplate template = new JmsTemplate(); template.setPubSubNoLocal(false); template.setConnectionFactory(connectionFactory); template.setDefaultDestination((<em>ActiveMQ</em>Queue)applicationUtil.getBean("messageQueue")); return template; } /** * @author ZhaoYM * @description 登录<em>消息</em>队列 * @return */ @Bean(name="loginQueueTemplate") public JmsTemplate loginQueueTemplate(){ JmsTemplate template = new JmsTemplate(); template.setPubSubNoLocal(false); template.setConnectionFactory(connectionFactory); template.setDefaultDestination((<em>ActiveMQ</em>Queue)applicationUtil.getBean("loginQueue")); return template; } @Bean(name="messageQueue") public Destination messageQueue(){ <em>ActiveMQ</em>Queue activeMQQueue = new <em>ActiveMQ</em>Queue(); activeMQQueue.setPhysicalName("messageQueue"); return activeMQQueue; } @Bean(name="loginQueue") public Destination loginQueue(){ <em>ActiveMQ</em>Queue activeMQQueue = new <em>ActiveMQ</em>Queue(); activeMQQueue.setPhysicalName("loginQueue"); return activeMQQueue; } } ``` 发送<em>消息</em>代码 ``` package com.zym.robot.activemq; import java.io.Serializable; import org.springframework.jms.core.JmsTemplate; public class SendMessage { /** * @author ZhaoYM * @description 发送<em>消息</em> * @param object * @param jmsTemplate */ public static void sendMessage(Serializable object, JmsTemplate jmsTemplate){ SimpleMessageCreatorImpl messageCreator = new SimpleMessageCreatorImpl(); messageCreator.setMessage(object); jmsTemplate.send(messageCreator); } } ``` ``` package com.zym.robot.activemq; import java.io.Serializable; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.Session; import org.springframework.jms.core.MessageCreator; /** * @author ZhaoYM * @description message 简单实现 */ public class SimpleMessageCreatorImpl implements MessageCreator{ private Serializable message; public Serializable getMessage() { return message; } public void setMessage(Serializable message) { this.message = message; } @Override public Message createMessage(Session session) throws JMSException { if (message == null) { return session.createTextMessage("默认<em>消息</em>"); }else { return session.createObjectMessage(getMessage()); } } } ``` [![图片说明](https://img-ask.csdn.net/upload/201704/25/1493109289_893485.png)
activemq发送消息接收不到问题排查
昨天,在公司开发环境上尝试数据同步,涉及到两个服务,服务A发布主题,服务B监听<em>消息</em>,然后同步A表中的数据到B表; 由服务A通过activemq发布<em>消息</em>到一个topic:VirtualTopic.topic,发现服务A日志上显示发送<em>消息</em>成功,VirtualTopic.topic对应的Messages Enqueued数目增加了2,表明topic上也产生了相应数目<em>消息</em>队列;但是服务B日志上迟迟没有打...
ActiveMQ 消息监听 MessageListener使用
刚学 <em>ActiveMQ</em>, 最开始搭建环境的时候引入的jar 包,几个核心的jar jms.jar, httpcore.jar , httpclient.jar, activemq-all.jar 准备完毕,启动junit 发现有好些个class 找不到,比如 PoolingClientConnectionManager 等,老是报 classnotfound 的错误,打开源代码一看,原来是引入的版
ActiveMQ中消费者是如何接收消息
一、 http://blog.csdn.net/manzhizhen/article/details/52606716 二、 http://blog.csdn.net/manzhizhen/article/details/52606717
消息中间件之ActiveMQ传输文件
Activemq传输文件        我用的是MQ<em>消息</em>中间件activemq来传输文件的,当然还有很多其他的方式,选择哪种方式还请自行搜索各个<em>消息</em>中间件的特点来定。 <em>ActiveMQ</em>传输文件的方式有byteMessage、StreamMessage、BlobMessage。其中bytemessage和streammessage如果不加工处理的话,只能传输小文件,小于100M的文件应该都可以传
ActiveMQ消息发送接收封装实现及定时测试.
实现了<em>ActiveMQ</em>的初步封装,比较适合新手入门学习,简单明了
ActiveMQ消息接收模式
<em>消息</em><em>接收</em>模式 <em>消息</em>都是从Broker传输到Client,默认情况下Broker会主动将<em>消息</em>PUSH至Client,当然也可以通过配置改为Client主动从Broker PULL<em>消息</em>,参考: http://activemq.apache.org/slow-consumer-handling.html PUSH模式 默认情况下,Broker会主动将<em>消息</em>PUSH至Client,这样做的目的是为了让消...
Springboot RabbitMq源码解析之RabbitListener的MessageListener#onMessage解析
Springboot RabbitMq源码解析之配置类 Springboot RabbitMq源码解析之<em>消息</em>发送 Springboot RabbitMq源码解析之消费者容器Simple<em>MessageListener</em>Container Springboot RabbitMq源码解析之consumer管理和AmqpEvent Springboot RabbitMq源码解析之RabbitListener...
spring JMS在接收消息的时候总是报错
org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is javax.jms.JMSException: Unexpected error occured at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:316) at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:168) at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:469) at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:534) at com.tiantian.springintejms.service.impl.ProducerServiceImpl.sendMessage(ProducerServiceImpl.java:26) at com.tiantian.springintejms.test.ProducerConsumerTest.testSend(ProducerConsumerTest.java:48) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) Caused by: javax.jms.JMSException: Unexpected error occured at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62) at org.apache.activemq.<em>ActiveMQ</em>Connection.syncSendPacket(<em>ActiveMQ</em>Connection.java:1306) at org.apache.activemq.<em>ActiveMQ</em>Session.send(<em>ActiveMQ</em>Session.java:1760) at org.apache.activemq.<em>ActiveMQ</em>MessageProducer.send(<em>ActiveMQ</em>MessageProducer.java:231) at org.apache.activemq.<em>ActiveMQ</em>MessageProducerSupport.send(<em>ActiveMQ</em>MessageProducerSupport.java:241) at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:592) at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:569) at org.springframework.jms.core.JmsTemplate$3.doInJms(JmsTemplate.java:536) at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:466) ... 26 more Caused by: java.io.IOException: Unexpected error occured at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:209) at java.lang.Thread.run(Thread.java:744) Caused by: java.lang.NoSuchMethodError: org.slf4j.MDC.getCopyOfContextMap()Ljava/util/Map; at org.apache.activemq.util.MDCHelper.getCopyOfContextMap(MDCHelper.java:30) at org.apache.activemq.thread.PooledTaskRunner.(PooledTaskRunner.java:42) at org.apache.activemq.thread.TaskRunnerFactory.createTaskRunner(TaskRunnerFactory.java:80) at org.apache.activemq.<em>ActiveMQ</em>SessionExecutor.wakeup(<em>ActiveMQ</em>SessionExecutor.java:101) at org.apache.activemq.<em>ActiveMQ</em>SessionExecutor.execute(<em>ActiveMQ</em>SessionExecutor.java:85) at org.apache.activemq.<em>ActiveMQ</em>Session.dispatch(<em>ActiveMQ</em>Session.java:1535) at org.apache.activemq.<em>ActiveMQ</em>Connection$2.processMessageDispatch(<em>ActiveMQ</em>Connection.java:1733) at org.apache.activemq.command.MessageDispatch.visit(MessageDispatch.java:109) at org.apache.activemq.<em>ActiveMQ</em>Connection.onCommand(<em>ActiveMQ</em>Connection.java:1714) at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116) at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69) at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113) at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:227) at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83) at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:220) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:202) ... 1 more
activemq 三种消息监听方式
1.activemq <em>消息</em>监听的三种方式。点击打开链接
JMS与Spring之二(用message listener container异步收发消息
本文主要参考Java Message Service(2nd)by Marc Ricbard。 在Spring框架中<em>使用</em>JMS传递<em>消息</em>有两种方式:JMS template和message listener container,前者用于同步收发<em>消息</em>,后者用于异步收发<em>消息</em>。 本文
activemq之MessageConsumer.receive方法
activemq提供的客户端分离了<em>消息</em>的读取以及<em>接收</em>,以Queue模式为例,这其中的中介就是<em>ActiveMQ</em>MessageConsumer的unconsumedMessages属性(MessageDispatchChannel unconsumedMessages,该属性存储了将要被发送的<em>消息</em>),下面就以<em>ActiveMQ</em>MessageConsumer:receive为例来说明读取<em>消息</em>:     ...
JMS(二):MessageListener,实战Queue ,实战Topic,消息
<em>MessageListener</em> <em>消息</em>的消费者<em>接收</em><em>消息</em>可以采用两种方式:   1、consumer.receive() 或 consumer.receive(int timeout);   2、注册一个<em>MessageListener</em>。   采用第一种方式,<em>消息</em>的<em>接收</em>者会一直等待下去,直到有<em>消息</em>到达,或者超时。后一种方式会注册一个监听器,当有<em>消息</em>到达的时候,会回调它的onMessage()
DefaultMessageListenerContainer消息应答方式
JMS标准支持的<em>消息</em>应答模式有下面几种: AUTO_ACKNOWLEDGE:自动应答,默认的应答方式 CLIENT_ACKNOWLEDGE:客户端应答,应答由应用程序在<em>接收</em>到<em>消息</em>后触发 DUPS_OK_ACKNOWLEDGE:尽量不要<em>使用</em>,如果<em>使用</em>这种方式,应用程序需要考虑处理<em>消息</em>重复<em>问题</em> SESSION_TRANSACTED:事务应答 <em>使用</em>MessageConsumer来<em>接收</em><em>消息</em>时不管...
Spring整合Jms学习(二)_三种消息监听器
1.3     <em>消息</em>监听器<em>MessageListener</em>        在Spring整合JMS的应用中我们在定义<em>消息</em>监听器的时候一共可以定义三种类型的<em>消息</em>监听器,分别是<em>MessageListener</em>、SessionAware<em>MessageListener</em>和<em>MessageListener</em>Adapter。下面就分别来介绍一下这几种类型的区别。 1.3.1  <em>MessageListener</em>
Spring整合Activemq中的DefaultMessageListenerContainer
当我们Spring整合<em>ActiveMQ</em>后。消费端会注册<em>消息</em>监听<em>消息</em>。这时候一般会<em>使用</em>Default<em>MessageListener</em>Container(父类:AbstractPolling<em>MessageListener</em>Container)类来监听。这个类的主要做用就是用来管理监听<em>消息</em>的容器类。简单来说就是:创建线程并执行,执行的内容就是轮训调用<em>ActiveMQ</em>的receive方法来查看是否有<em>消息</em>。如果...
Spring整合rabbitmq实践(三):源码-@RabbitListener实现过程
4. 源码解析 4.1. 通过RabbitTemplate获取<em>消息</em> 从RabbitTemplate中只有queueName入参的方法开始: @Override public Message receive(String queueName) { if (this.receiveTimeout == 0) { return doReceiveNoWait(queueName); ...
org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer 报错解决
消息中间件 RocketMQ源码解析:Message拉取&消费(下)
2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...
Spring AMQP 源码分析MessageListener
2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...
ActiveMQ(三):消息监听器 MessageListener
<em>ActiveMQ</em> 最关心的就是<em>消息</em>的发送与<em>接收</em>了,<em>消息</em>发送不是<em>问题</em>,主要是<em>消息</em><em>接收</em>,或者说是让<em>消息</em>不停地<em>接收</em>. <em>接收</em><em>消息</em>有两种方式, 方式一: boolean flag = true; while(flag){ TextMessage message = (TextMessage)consumer.receive(1000 * 100); if(messa
ActiveMQ(四):Topic方式使用MessageListener监听的方式接收消息
发布/订阅模式
Spring和 jms
主要的几个类说明: 1 JmsTemplate 用于发送和接受<em>消息</em>。需要<em>消息</em>工厂参数。 基于监听: 2 Default<em>MessageListener</em>Container,Simple<em>MessageListener</em>Container这两个容器可以创建多个session和消费者来对每个队列进行<em>消息</em>处理并条用<em>消息</em>监听类的方法进行处理。并通过多线程进行处理。每个线程通过轮训的方式(while(tru
Activemq 常见的一些问题 心得
1.先讲严重的:服务挂掉。 这得从<em>ActiveMQ</em>的储存机制说起。在通常的情况下,非持久化<em>消息</em>是存储在内存中的,持久化<em>消息</em>是存储在文件中的,它们的最大限制在配置文件的节点中配置。但是,在非持久化<em>消息</em>堆积到一定程度,内存告急的时候,<em>ActiveMQ</em>会将内存中的非持久化<em>消息</em>写入临时文件中,以腾出内存。虽然都保存到了文件里,但它和持久化<em>消息</em>的区别是,重启后持久化<em>消息</em>会从文件中恢复,非持久化的临时文
kafka 消费者 获取消息
activeqmq 都是broker push 到 消费者,消费者 建立 messageListener 监听器 就可以 获取<em>消息</em>,但kafka 是 需要去broker pull<em>消息</em>, 怎么才能知道 broker中 已经 有了对应 topic 呢 ?定时 获取?
activemq中消费者监听的方法进不去
activemq连接本地的服务能正常执行,如果连其他IP地址的服务,一直卡在消费者监听方法这里, messageConsumer.set<em>MessageListener</em>(new <em>MessageListener</em>() { public void onMessage(Message message) { .....//不会到这个方法里面来 } }
ActiveMQ中消费者是如何接收消息的(一)
       事先说明,本博客关于<em>ActiveMQ</em>的文章都是基于<em>ActiveMQ</em>5.10版本。        初步用过<em>ActiveMQ</em>但又没去研究过源码的朋友肯定有些好奇<em>ActiveMQ</em>中消费者是如何<em>接收</em><em>消息</em>的呢?本文我就和大家一起从源码角度来初步探讨消费者<em>接收</em><em>消息</em>的过程。        我们知道,<em>消息</em>传送有两种模型:点对点(P2P)和发布订阅(PUB/SUB),队列模式中,<em>消息</em>生产者叫做发送...
Spring 整合 JMS 报 Execution of JMS message listener failed
Execution of JMS message listener failed - org.springframework.jms.listener.Abstract<em>MessageListener</em>C
Spring之JMS之接受消息
23.4.1 同步接受 JMS一般是异步处理
Spring JMS MessageListener实现类不能参与事务拦截
Spring JMS <em>MessageListener</em>实现类不能参与事务拦截,否则会出现<em>MessageListener</em>的实现类在操作数据库时找不到数据库,特别是多租户数据库切换条件下,会出现两种情况: (1)服务器刚启动第一次执行Listener时会报错:   Hibernate:Could not execute JDBC batch update 以及Hibernate:NO databa...
RabbitMQ Spring(八)MessageListenerAdapter 不同队列由不同方法消费
定义用于消费不同队列的两个方法 package adapter; import convert.TextMessageConverter; /** * 自定义的消费监听 */ public class MessageDelegate { public void method1(String messageBody) { S...
[spring+AMQ]DefaultMessageListenerContainer设置sessionTransacted为true,异常重试7次后丢弃
Default<em>MessageListener</em>Container设置了sessionTransacted='true'后。如果抛异常是可以rollback重新放回队列,重新处理的。但是这里有个“限制”。
以SpringMVC框架为中心疯狂扩展-06、MessageListener实时监听ActiveMQ中的消息
1、在spring-activemq.xml中新加入listenerContainer和syxTopicDest等配置,实现<em>消息</em>监听容器,在connectionFactory中加入clientId。 http://www.w3.org/2001/XM
深入掌握JMS(三):MessageListener
  <em>消息</em>的消费者<em>接收</em><em>消息</em>可以采用两种方式:  1、consumer.receive() 或 consumer.receive(int timeout);  2、注册一个<em>MessageListener</em>。  采用第一种方式,<em>消息</em>的<em>接收</em>者会一直等待下去,直到有<em>消息</em>到达,或者超时。后一种方式会注册一个监听器,当有<em>消息</em>到达的时候,会回调它的onMessage()方法。下面举例说明: Mess
Spring-Amqp MessageListener详解
为什么80%的码农都做不了架构师?&gt;&gt;&gt; ...
spring整合JMS(二)
1.3     <em>消息</em>监听器<em>MessageListener</em>        在Spring整合JMS的应用中我们在定义<em>消息</em>监听器的时候一共可以定义三种类型的<em>消息</em>监听器,分别是<em>MessageListener</em>、SessionAware<em>MessageListener</em>和<em>MessageListener</em>Adapter。下面就分别来介绍一下这几种类型的区别。 1.3.1  <em>MessageListener</em> Me
jms
<em>消息</em>的消费者<em>接收</em><em>消息</em>可以采用两种方式: (1)consumer.receive()或者consumer.receive(int timeOut) (2)注册一个messageListener 采用第一种方式<em>消息</em>会一直等待下去,直到有<em>消息</em>到达,或者超时。后一种方式会注册一个监听器,当有<em>消息</em>到达的时候会回调它的Onmessage()方法,下面举例说明。 MessageConsu...
Spring-amqp 1.6.1消费者手工对消息进行确认
在<em>使用</em>Spring amqp创建消费者并<em>接收</em><em>消息</em>时,通常会用到下面两个接口。public interface <em>MessageListener</em> { void onMessage(Message message);}public interface ChannelAware<em>MessageListener</em> { void onMessage(Message message, Channel c
spring boot中集成rabbitMQ启动报错
![图片说明](https://img-ask.csdn.net/upload/201703/29/1490781535_78045.png) 一直无线重启,测试方式用debug模式,程序能跑完,还是报错
spring整合ActiveMq是对对象进行序列化时报错
javax.jms.JMSException: Failed to build body from content. Serializable class not available to broke
ActiveMQ问题分析和解决
1)KahaDb和AMQ Message Store两种持久方式如何选择?官方:From 5.3 onwards - we recommend you use KahaDB - which offers improved scalability and recoverability over the AMQ Message Store.The AMQ Message Store which alt
Spring AMPQ 的SimpleMessageListenerContainer 源码简析
                Spring AMPQ 的Simple<em>MessageListener</em>Container类源码简析      因为工作中需要动态的订阅queue,完成后取消,印象中之前工作中做过的基本都是queue确定或者只订阅一个queue的,有点没头绪,google了下,发现 spring AMQP 的Simple<em>MessageListener</em>Container类已经实现了这个...
ActiveMQ与Spring集成,使用messageListener,subscriber怎样将收到的消息显示出来
初学activeMQ,尝试结合spring<em>使用</em>activeMQ。在配置了messageListener以后,只需要简单定义receive()函数。这样每当有<em>消息</em>到达的时候,都会调用receive()方
ActiveMQ与Spring整合:(3)消息监听器
JMS监听器有三种<em>消息</em>监听器实现:<em>MessageListener</em>,SessionAware<em>MessageListener</em>,<em>MessageListener</em>Adapter。<em>消息</em>接受者只需要实现这些接口就可以异步<em>接收</em><em>消息</em>。 1、实现<em>MessageListener</em>接口,实现<em>MessageListener</em>接口,必须重写onMessage方法。 package com.hua.spring.jms.lis
ActiveMQ的发送与接收 简单例子和监听配置
简单发送实例: package com.xuwei.activemq; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.DeliveryMode; import javax.jms.Destination; import javax.jms.MessageProduc
Java中如何正确的终止线程
1、Java中API自带的stop()方法,来终止线程         查阅JDK,不难发现Thread提供了一个stop()方法,但是stop()方法是一个被废弃的方法。为什么stop()方法被废弃而不被<em>使用</em>呢?原因是stop()方法太过于暴力,会强行把执行一半的线程终止。这样会就不会保证线程的资源正确释放,通常是没有给与线程完成资源释放工作的机会,因此会导致程序工作在不确定的状态下。关于<em>使用</em>
2,ActiveMQ-Queues点对点消息-Receive+Listener方式
本节主要实现<em>ActiveMQ</em>-Queues点对点<em>消息</em>生产者及消费者的Receive+Listener两种<em>接收</em>方式一,实现步骤和预期1,开启<em>ActiveMQ</em>服务-请参考 : <em>ActiveMQ</em>的下载,安装和启动 2,创建生产者,用于向指定队列发送测试数据 3,创建消费者-Receive方式,消费由生产者发送的队列的<em>消息</em> 4,创建消费者-Listener方式,消费由生产者发送的队列的<em>消息</em> 5,查看
关于activemq messagelistener工作方式的问题
我在做一个项目,<em>使用</em>activemq异步消费方式,继承messagelistener做了一个outmsglistener,希望在收到<em>消息</em>时能够运用发送接口发送出去,onmessage中的代码为: if (message instanceof ObjectMessage) { ObjectMessage objectMsg = (ObjectMessage) message; MsgObject msg = (MsgObject)objectMsg.getObject(); String phone=msg.getPhonenum(); String outmsg=msg.getMsgBody(); SmsSendManager.getInstance().send(phone, outmsg); } 这样启动该程序就可以侦听了,本来是没有<em>问题</em>的,也可以<em>使用</em>了。 但是现在我在smsSendManager中写了一个静态代码,启动一个httpserver来侦听对方给我返回的状态,现在启动时就会报错,说是启动这个httpserver时初始化错误,不知为什么?
ActiveMQ消息传送机制以及ACK机制详解
    AcitveMQ是作为一种<em>消息</em>存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保<em>消息</em>的存储安全性,还要提供额外的手段来确保<em>消息</em>的分发是可靠的。   一. <em>ActiveMQ</em><em>消息</em>传送机制     Producer客户端<em>使用</em>来发送<em>消息</em>的, Consumer客户端用来消费<em>消息</em>;它们的协同中心就是<em>ActiveMQ</em> broker,broker也是让prod...
请教setMessageListener问题
我在短信代码中: try{//地址 String address = "sms://+" + phoneNumber; form.append(address); form.append(gbcont
Spring整合JMS(二)——三种消息监听器
1.3     <em>消息</em>监听器<em>MessageListener</em>        在Spring整合JMS的应用中我们在定义<em>消息</em>监听器的时候一共可以定义三种类型的<em>消息</em>监听器,分别是<em>MessageListener</em>、SessionAware<em>MessageListener</em>和<em>MessageListener</em>Adapter。下面就分别来介绍一下这几种类型的区别。 1.3.1  <em>MessageListener</em> Me
spring boot实战(第十二篇)整合RabbitMQ
前言 本篇主要讲述Spring Boot与RabbitMQ的整合,内容非常简单,纯API的调用操作。  <em>消息</em>生产者 不论是创建<em>消息</em>消费者或生产者都需要ConnectionFactory ConnectionFactory配置 创建AmqpConfig文件AmqpConfig.java(后期的配置都在该文件中) @Configuration public
ActiveMQ原理到实例
在介绍activemq之前,先简单介绍JMS,它是J2EE的13个规范之一,提供的是<em>消息</em>中间件的规范。JMS包括以下基本构件: 连接工厂,是客户用来创建连接的对象,<em>ActiveMQ</em>提供的是<em>ActiveMQ</em>ConnectionFactory; 连接connection 会话session,是发送和<em>接收</em><em>消息</em>的上下文,用于创建<em>消息</em>生产者,<em>消息</em>消费者,相比rocketMQ会话session是提供事务
这两天调试环信的心得
一.集成就不多说了,官方文档都有的,可以自己去看: 集成进来有一个小的<em>问题</em>就是设置昵称和头像。1、在登录的时候,把自己登录成功时后台返回的信息保存到sharedpreferences中,需要包含需要的头像和昵称。new Thread(new Runnable() {@Overridepublic void run() {EMClient.getInstance().login(usernam
ActiveMQ使用线程池实现消息的生产与消费
1。 首先先引入相关的lib包,重点需引用activemq-client-5.8.0.jar,activemq-core-5.7.0.jar,activemq-pool-5.8.0.jar,activemq-protobuf-1.1.jar等包,其他包 自行配置。 2。 一些公共工具类的代码: JMSProducer.java package com.ffcs.icity.jms; ...
ActiveMQ入门教程(六) - ActiveMQ与Spring整合-MessageListener
在这一篇博客分享一下消费者,<em>使用</em>监听的实现方式。 1. pom.xml 和上一篇一样 : <em>ActiveMQ</em>入门教程(五) - <em>ActiveMQ</em>与Spring整合 2. 生产者 package org.ygy.mq.lesson04; import javax.jms.JMSException; import javax.jms.Message; import java
Spring JMS---三种消息监听器
<em>消息</em>监听器<em>MessageListener</em>在spring整合JMS的应用中我们在定义<em>消息</em>监听器的时候一共可以定义三种类型的<em>消息</em>监听器,分别是<em>MessageListener</em>、SessionAware<em>MessageListener</em>和<em>MessageListener</em>Adapter。下面就分别来介绍一下这几种类型的区别。 1. <em>MessageListener</em> <em>MessageListener</em>是最原始的<em>消息</em>
【spring-jms】DefaultMessageListenerContainer
Default<em>MessageListener</em>Container 分析 org.springframework.jms.listener.Default<em>MessageListener</em>Container maven org.springframework spring-jms</artifactId
spring jms DefaultMessageListenerContainer分析
本文<em>使用</em>的spring-jms源代码分支4.2.x(从git上直接取的).对于spring框架中的类,下文都省略了包目录.类继承关系java.lang.Object JmsAccessor JmsDestincationAccessor AbstractJmsListeningContainer AbstractMess
Kafka集成Spring-AcknowledgeMessageListener接口实现
前言因工作需要,需在系统利用Kafka监听接口,实现<em>消息</em>队列中,对<em>消息</em>的消费,首选Kafka,因为看中其超高的吞吐量。基本概念 Producer: 特指<em>消息</em>的生产者 Consumer :特指<em>消息</em>的消费者 Consumer Group :消费者组,可以并行消费Topic中partition的<em>消息</em> Broker:缓存代理,Kafa 集群中的一台或多台服务器统称为 broker。 Topic:特指 Kaf
深入理解DefaultMessageListenerContainer
深入理解Default<em>MessageListener</em>Container
ActiveMQ消息发送和接收
JMS即Java<em>消息</em>服务(Java Message Service)应用程序接口是一个Java平台中关于面向<em>消息</em>中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送<em>消息</em>,进行异步通信。Java<em>消息</em>服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。        在 Java 里有 JMS 的多个实现,<em>ActiveMQ</em> 是Apache出品,最流行的,能力
spring整合JMS一同步收发消息(基于ActiveMQ的实现)
1. 安装<em>ActiveMQ</em> 到Apache官方网站下载最新的<em>ActiveMQ</em>的安装包,并解压到本地目录下,下载链接如下:http://activemq.apache.org/download.html,解压后的目录结构如下: bin目录结构如下: 如果我们是32位的机器,就双击win32目录下的activemq.bat,如果是64位机器,则双击
activemq的消息接收,就是接收不到消息,请问是哪里的问题
// 默认连接用户 private static final String USERNAME = "admin"; // 默认连接密码 private static final String PASSWORD = "admin"; // 默认连接URL private static final String BROKERURL = "tcp://139.224.235.172:61613"; public static void main(String[] args) { // 连接工厂 ConnectionFactory connectionFactory; // 连接 Connection connection = null; // 会话 Session session; // <em>消息</em>目的地 Destination destination; // <em>消息</em>消费者 MessageConsumer consumer; // 实例化工厂 connectionFactory = new <em>ActiveMQ</em>ConnectionFactory(USERNAME, PASSWORD, BROKERURL); try { // 创建连接 connection = connectionFactory.createConnection(); // 启动连接 connection.start(); // 创建会话 session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 创建<em>消息</em>队列 destination = session .createQueue("p171024103004.response.payonline"); // 创建消费者 consumer = session.createConsumer(destination); while (true) { // 参数:<em>接收</em><em>消息</em>的超时时间,为0的话则不超时,receive返回下一个<em>消息</em>,但是超时了或者消费者被关闭,返回null Message message = (Message) consumer.receive(10*1000); if (message != null) { System.out.println("收到的<em>消息</em>:" + ((TextMessage) message).getText()); } else { System.out.println("没有收到<em>消息</em>"); break; } } } catch (Exception e) { e.printStackTrace(); } }
java activeMQ消息的发送与接收
java activeMQ<em>消息</em>的发送与<em>接收</em>          activemq是我们经常用到的<em>消息</em>队列之一,比如说速度快,对spring的很好的支持,支持多种协议等等,今天我们就来看一下activeMQ<em>消息</em>的发送与<em>接收</em>的源代码。       我这里<em>使用</em>了两个配置文件,其实在一个配置文件里面就可以完成发送与<em>接收</em>功能,但是为了方便观察日志,我就<em>使用</em>了两个配置文件。在<em>使用</em>代码之前需要搭建好act
activemq消息队列-使用监听器来接收消息(常用)
//点对点-<em>使用</em>监听器<em>接收</em><em>消息</em> public class ConsumerListener { // tcp 地址 服务器器端地址 //public static final String BROKER_URL =<em>ActiveMQ</em>Connection.DEFAULT_BROKER_URL; // 其值为 "tcp://localhost:61616"; public...
ActiveMQ暂停接收消息与恢复接收消息
目录   ●<em>问题</em>起因 ●解决方案 ●测试结果 ●<em>问题</em>起因 <em>使用</em><em>ActiveMQ</em>的过程中,有这么一个很常见的需求:如果我的<em>消息</em>消费者压力过大,<em>接收</em><em>消息</em>来不及处理,我想暂停<em>接收</em><em>消息</em>,先处理完已<em>接收</em>到的<em>消息</em>后,再恢复继续<em>接收</em>新的<em>消息</em>。 比较诡异的是,这样一个看似简单的功能,百度上居然没有一个适用的方案,大家不信的话可以搜索试试: 第一篇文章看似OK,但是点进去你会发现他的实现方式依旧...
求助:Execution of JMS message listener failed!!
这个<em>问题</em>困扰我很长时间了 而且这个错误偶尔会出现 请各位大哥大姐不吝赐教 万分感谢!!! 现在我还没有分 等有分 加倍奉送 。 15278725 - Refreshing org.springfram
Spring Boot使用RabbitMQ出现诡异异常:Failed to send reply with payload 'OK',Cannot determine ReplyTo message
今天项目中出现一个诡异的异常:org.springframework.amqp.rabbit.listener.exception.ListenerExecutionFailedException: Listener threw exception at org.springframework.amqp.rabbit.listener.Abstract<em>MessageListener</em>Contain...
ActiveMQ注意事项
1,consumer,connection何时关闭 1)当我们在<em>使用</em>设置监听的方式<em>接收</em><em>消息</em>的时候,不可以在程序中主动关闭consumer,因为<em>消息</em>是异步<em>接收</em>的,此时如入关闭,会造成在没有<em>接收</em><em>消息</em>的情况下消费者就被关闭,这个监听器也就没有什么意义了。 2)<em>使用</em>receive()方式<em>接收</em><em>消息</em>,如果在接受到<em>消息</em>后不关闭当前连接,那么当我们在新建一个连接的时候(<em>使用</em>线程创建新的连接),无法从<em>消息</em>队
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个<em>问题</em>我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个<em>问题</em>,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
前端 | 2. 正则
转载请注明以下: 本文转自清自以敬的博客:https://blog.csdn.net/qq_45791147 文章目录1.转义2.正则表达式初步2.1.匹配字符2.1.1.组成元素2.1.2.基础正则的设计 1.转义 转义的作用: 当某个字符在表达式中具有特殊含义,例如字符串引号中出现了引号,为了可以<em>使用</em>这些字符本身,而不是<em>使用</em>其在表达式中的特殊含义,则需要通过转义符“\”来构建该字符转义...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个<em>问题</em>,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、<em>问题</em>引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活<em>使用</em>,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量<em>使用</em>ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个<em>问题</em>。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
Docker 从入门到掉坑
Docker 介绍 简单的对docker进行介绍,可以把它理解为一个应用程序执行的容器。但是docker本身和虚拟机还是有较为明显的出入的。我大致归纳了一下,可以总结为以下几点: docker自身也有着很多的优点,关于它的优点,可以总结为以下几项: 安装docker 从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Doc...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个<em>问题</em>。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的<em>问题</em>,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
MCS51 12864液晶显示2011_01_07下载
MCS51 12864液晶显示2011_01_07 MCS51 12864液晶显示2011_01_07 MCS51 12864液晶显示2011_01_07 相关下载链接:[url=//download.csdn.net/download/chenlinchao1989/3772195?utm_source=bbsseo]//download.csdn.net/download/chenlinchao1989/3772195?utm_source=bbsseo[/url]
omniserver ver2.6下载
非常好的串口通讯OPC服务器,最大他点就是可配置,可以适应很多非标准协议,但然标准协议也支持。虽然是试用版,但可连续使用两小时,而且到期关闭再次启动即可。测试性能很好,速度极快。适用于串口和OPC调试。 相关下载链接:[url=//download.csdn.net/download/pigchou/2053525?utm_source=bbsseo]//download.csdn.net/download/pigchou/2053525?utm_source=bbsseo[/url]
asp.net很好用的编辑器下载
asp.net很好用的编辑器! 值得下载看看!资源免费,大家分享!! 更多免费资源 http://ynsky.download.csdn.net/ 相关下载链接:[url=//download.csdn.net/download/ynsky/2278715?utm_source=bbsseo]//download.csdn.net/download/ynsky/2278715?utm_source=bbsseo[/url]
相关热词 c# clr dll c# 如何orm c# 固定大小的字符数组 c#框架设计 c# 删除数据库 c# 中文文字 图片转 c# 成员属性 接口 c#如何将程序封装 16进制负数转换 c# c#练手项目
我们是很有底线的