一、报错内容
Caused by: java.lang.ClassNotFoundException: org.springframework.util.backoff.BackOff
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 14 more
二、今天写了一个mq的监听方法,结果报以上错误
代码如下:
配置文件:
<!-- 消息接收者-->
<bean id="recieverDFBModifyPSW" class="com.*.*"></bean>
<rabbit:queue id="exchangePasswordSyncQYD" name="exchangePasswordSyncQYD"/>
<!-- queue litener 观察 监听模式 当有消息到达时会通知监听在对应的队列上的监听对象-->
<rabbit:listener-container connection-factory="rabbitConnectionFactory" >
<rabbit:listener queues="exchangePasswordSyncQYD" ref="recieverDFBModifyPSW"/>
</rabbit:listener-container>
代码:
public void onMessage(Message message, Channel channel) throws Exception {
String body = null;
if(null == message.getBody()){
return;
} else {
try {
String contentType = message.getMessageProperties() != null ? message.getMessageProperties().getContentType() : null;
if ("application/x-java-serialized-object".equals(contentType)) {
body = SerializationUtils.deserialize(message.getBody()).toString();
}else{
body = new String(message.getBody(), ENCODING);
}
} catch (Exception var2) {
logger.info("LottertListener-ERROE,var2:{}", var2.getMessage());
} finally {
long deliveryTag = message.getMessageProperties().getDeliveryTag();
channel.basicAck(deliveryTag, false);
}
}
System.out.println(body);
}
经过查询网页等,发现是由于spring的版本太低,不支持
解决方法:
升级spring版本为:
<spring.version>5.0.0.RELEASE</spring.version>
问题得以解决。。。