2015-02-02 5 views
1

올바르게 구성된 RabbitMQ 큐 (dlx 인수를 보여줍니다)가 있고 Java 수신기 코드에 FatalListenerExecutionException이 있습니다. 어떤 이유로 예외가 던져지면 지정된 데드 레터 큐에 아무 것도 나타나지 않습니다.봄 AMQP- 데드 레터 큐에 아무것도 표시되지 않습니다.

잘못된 예외를 던지고 있습니까?

감사합니다. 봄 구성

큐 인스턴스 :

Map arguments = new HashMap(); 
arguments.put("x-dead-letter-exchange", "dlx.queue"); 
new Queue("some.queue", true, false, false, arguments); 

리스너 컨테이너 봄 구성 :

Parameters : x-dead-letter-exchange: dlx.queue 

답변

0

당신에게 : RabbitMQ 콘솔에 표시된 "some.queue"에 대한

public SimpleMessageListenerContainer 
someContainer(){ 
     final SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(); 
     container.setConnectionFactory(connectionFactory); 
     container.setQueues(createTheQueue()); 
     container.setMessageListener(theListener()); 
     container.setConcurrentConsumers(numberOfConcurrentConsumers); 
     container.setMaxConcurrentConsumers(maxDefaultConsumers); 
     container.setDefaultRequeueRejected(false); 
     return container; 
    } 

바인딩 AmqpRejectAndDontRequeueException을 던지거나 설정하기에 충분합니다.리스너 컨테이너 용.

봄 AMQP에서 테스트의 경우를 참조하십시오 https://github.com/spring-projects/spring-amqp/blob/master/spring-rabbit/src/test/java/org/springframework/amqp/rabbit/core/FixedReplyQueueDeadLetterTests.java

+0

감사합니다. 사실 defaultRequeuRejected = "false"입니다. – mstrom

+0

DLX/DLQ 바인딩을 포함하여 구성을 표시해야합니다. –

+0

감사합니다. 나는 원래 질문에 세부 사항을 추가했다. – mstrom

관련 문제