I used axon server in my application, i tried to configure the DLQ with mongodb, but this error
Parameter 0 of method deadLetterQueueConfigurerModule in AxonDLQConfig required a bean of type ‘org.axonframework.extensions.mongo.MongoTemplate’ that could not be found
I have this dependencies :
<dependency>
<groupId>org.axonframework</groupId>
<artifactId>axon-spring-boot-starter</artifactId>
<version>4.7.2</version>
</dependency>
<dependency>
<groupId>org.axonframework.extensions.reactor</groupId>
<artifactId>axon-reactor-spring-boot-starter</artifactId>
<version>4.7.0</version>
</dependency>
<dependency>
<groupId>org.axonframework.extensions.mongo</groupId>
<artifactId>axon-mongo</artifactId>
<version>4.7.0</version>
</dependency>
I configure the DLQ like below
@Bean
public ConfigurerModule deadLetterQueueConfigurerModule(org.axonframework.extensions.mongo.MongoTemplate mongoTemplate) {
log.debug("##### Register DLQ for processingGroup {} #####", PROCESSING_GROUP);
return configurer -> configurer.eventProcessing().registerDeadLetterQueue(
PROCESSING_GROUP,
config -> MongoSequencedDeadLetterQueue.builder()
.processingGroup(PROCESSING_GROUP)
.maxSequences(256)
.maxSequenceSize(256)
.mongoTemplate(mongoTemplate)
.transactionManager(config.getComponent(TransactionManager.class))
.serializer(config.serializer())
.build()
).registerDeadLetterPolicy(PROCESSING_GROUP, configuration -> (letter, cause) -> {
Integer retries = (Integer) letter.diagnostics().getOrDefault("retries", 0);
if (retries < MAX_RETRIES) {
return Decisions.requeue(cause, l -> l.diagnostics().and("retries", retries + 1));
}
return Decisions.doNotEnqueue();
});
}