2013-05-22 2 views
0

rabbitmq와 jms Spring Project를 함께 실행할 때 다음 오류가 발생합니다.org.springframework.jms.connection.CachingConnectionFactory는 org.springframework.amqp.rabbit.connection.ConnectionFactory로 캐스팅 될 수 없습니다.

ERROR osweb.context.ContextLoader - 컨텍스트 초기화가 실패 org.springframework.beans.factory.BeanCreationException : 오류 클래스 경로에 정의 된 이름 'rabbitTemplate'와 콩을 만드는 자원 [COM/타이스/미 헬스/service_core/amqp/AmqpConfiguration.class] : 빈 인스턴스화에 실패했습니다. 중첩 예외 org.springframework.beans.factory.BeanDefinitionStoreException이다 공장 메소드 [공개 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가있다 .springframework.jms.connection.CachingConnectionFactory는 org.springframework.amqp.rabbit.connection.ConnectionFactory

어떤 제안 이유에 캐스트 할 수없는 이유는 무엇입니까?

+0

스프링, rabbitmq의 어떤 버전을 사용하고 있습니까? 구성을 게시 할 수도 있습니까? – willome

+0

구성은 매우 긴 희망이 도움이 : 3.2.2.RELEASE \t org.springframework.amqp \t 스프링 AMQP \t 1.0.0.RELEASE \t \t org.springframework.amqp 스프링 토끼\t 1.0.0.RELEASE

+0

및 스프링 구성은 무엇입니까? – willome

답변

0

모두 내 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에 이름을 변경하고 일했다.

관련 문제