Spring 3.1.2 集成RabbitMQ失败

Spring 3.1.2集成 RabbitMQ,在不添加rabbit:listener-container监听配置前,项目可以正常启动,经过测试可以正常发送消息。后添加了监听配置,再次启动项目时出现报错: java.lang.NoClassDefFoundError: org/springframework/util/backoff/BackOff 希望请教一下大家该怎么解决

自己解决的时候,大部分的文档说是因为Spring版本太低,需要升级Spring。由于系统比较古老,升级Spring版本影响太多,故不太行得通。下面贴上jar版本和XML相关配置

jar版本

jar版本

配置文件

<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"  
    xmlns:rabbit="http://www.springframework.org/schema/rabbit"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd 
       http://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit-1.2.xsd ">  

    <description>Spring公共配置 </description>  

    <!-- 配置连接工厂 -->
     <rabbit:connection-factory id="rabbitConnectionFactory"
         host="${rabbit.host}" port="${rabbit.port}" username="${rabbit.username}" password="${rabbit.password}" />

     <!-- 定义mq管理 -->
     <rabbit:admin connection-factory="rabbitConnectionFactory" />
     <!-- 消息对象json转换类 -->
       <bean id="jsonMessageConverter" class="org.springframework.amqp.support.converter.Jackson2JsonMessageConverter" />

    <!--创建消息队列模板-->
    <rabbit:template id="rabbitTemplate" connection-factory="rabbitConnectionFactory" 
            exchange="gloria.queue" message-converter="jsonMessageConverter" />

    <!--定义queue  说明:durable:是否持久化 exclusive: 仅创建者可以使用的私有队列,断开后自动删除 auto_delete: 当所有消费客户端连接断开后,是否自动删除队列-->     
    <rabbit:queue name="oms_1"  durable="true" auto-delete="false" exclusive="false" />  
    <rabbit:queue name="oms_2"  durable="true" auto-delete="false" exclusive="false" />  
    <rabbit:queue name="oms_3"  durable="true" auto-delete="false" exclusive="false" />  
    <rabbit:queue name="oms_4"  durable="true" auto-delete="false" exclusive="false" />  
    <rabbit:queue name="oms_5"  durable="true" auto-delete="false" exclusive="false" />  
    <rabbit:queue name="oms_6"  durable="true" auto-delete="false" exclusive="false" />  

    <!-- 定义direct exchange,绑定oms_1 -->
       <rabbit:direct-exchange name="gloria.queue" durable="true" auto-delete="false">
        <rabbit:bindings>
            <rabbit:binding queue="oms_1" > </rabbit:binding>
            <rabbit:binding queue="oms_2" > </rabbit:binding>
            <rabbit:binding queue="oms_3" > </rabbit:binding>
            <rabbit:binding queue="oms_4" > </rabbit:binding>
            <rabbit:binding queue="oms_5" > </rabbit:binding>
            <rabbit:binding queue="oms_6" > </rabbit:binding>
         </rabbit:bindings>
     </rabbit:direct-exchange>

    <!-- 消息接收者 -->
    <bean id="messageReceiver" class="com.mipo.amqp.consumer.TestListener"></bean>

    <!-- queue litener  观察 监听模式 当有消息到达时会通知监听在对应的队列上的监听对象-->
    <rabbit:listener-container connection-factory="rabbitConnectionFactory" message-converter="jsonMessageConverter"  
        acknowledge="manual" concurrency= "2" >
        <rabbit:listener queues="oms_1" ref="messageReceiver"/>
    </rabbit:listener-container>

    <bean class="com.mipo.amqp.config.AmqpConfig" id="amqpConfig" init-method="init" lazy-init="false">

    </bean>

</beans> 

项目启动

讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!