0

当我一起运行 rabbitmq 和 jms Spring Project 时,出现以下错误。

错误 osweb.context.ContextLoader - 上下文初始化失败 org.springframework.beans.factory.BeanCreationException:创建类路径资源 [com/thys/michels/service_core/amqp/AmqpConfiguration.class] 中定义的名称为“rabbitTemplate”的 bean 时出错:实例化bean 失败;嵌套异常是 org.springframework.beans.factory.BeanDefinitionStoreException: 工厂方法 [public org.springframework.amqp.rabbit.core.RabbitTemplate com.thys.michels.service_core.amqp.AmqpConfiguration.rabbitTemplate()] 抛出异常;嵌套异常是 java.lang.ClassCastException:org.springframework.jms.connection.CachingConnectionFactory 不能转换为 org.springframework.amqp.rabbit.connection.ConnectionFactory

引起:java.lang.ClassCastException:org.springframework.jms.connection.CachingConnectionFactory 不能转换为 org.springframework.amqp.rabbit.connection.ConnectionFactory

任何建议为什么?

4

1 回答 1

2

我的 JMS 和 RabbitMQ 类都有一个名为 connectionFactory 的 connectionFactory 类,因此 JMS 的 connectionfactory 用于为 RabbitMQ 配置初始化。

JMS 类

@Bean
public ConnectionFactory connectionFactory() throws Exception {
            ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory();
            activeMQConnectionFactory.setBrokerURL(environment.getProperty("jms.broker.url"));
            return new CachingConnectionFactory(activeMQConnectionFactory);
        }

RabbitMQ 类

@Bean
       public ConnectionFactory connectionFactory() {
                CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory();
                cachingConnectionFactory.setUsername(environment.getProperty("amqp.broker.username"));
                cachingConnectionFactory.setPassword(environment.getProperty("amqp.broker.password"));
                cachingConnectionFactory.setHost(environment.getProperty("amqp.broker.host"));
                cachingConnectionFactory.setPort(environment.getProperty( "amqp.broker.port", Integer.class));
                // cachingConnectionFactory.setPort(60705);
                return cachingConnectionFactory;
            }

只是更改了 connectionFactory 名称并且它起作用了。

于 2013-05-23T17:50:45.053 回答