Apache camel 驼峰3-死信通道的动态uri
我正在尝试设置一个智能JMS死信通道,其中动态计算DLQ的最终uri,具体取决于原始队列名称(例如添加“.dead”后缀) 我在文档中看到,可以通过设置Apache camel 驼峰3-死信通道的动态uri,apache-camel,camel-jms,Apache Camel,Camel Jms,我正在尝试设置一个智能JMS死信通道,其中动态计算DLQ的最终uri,具体取决于原始队列名称(例如添加“.dead”后缀) 我在文档中看到,可以通过设置CamelJmsDestinationName标题 因此,我尝试了以下方法: DefaultErrorHandlerBuilder dlc = deadLetterChannel("jms:queue:dummy") .useOriginalMessage() .maximumR
CamelJmsDestinationName
标题
因此,我尝试了以下方法:
DefaultErrorHandlerBuilder dlc = deadLetterChannel("jms:queue:dummy")
.useOriginalMessage()
.maximumRedeliveries(2);
dlc.onPrepareFailure( exchange -> {
// Override destination
exchange.getMessage().setHeader("CamelJmsDestinationName", "jms:queue:test");
});
我尝试了许多不同的CamelJmsDestinationName值:
- “jms:队列:测试”
- “队列:测试”
- “测试”
@Resource(mappedName = "java:/ConnectionFactory")
private static ConnectionFactory connectionFactory;
@Produces
@ApplicationScoped
@Named("jms")
public final Sjms2Component createJmsComponent() {
Sjms2Component component = new Sjms2Component();
ConnectionResource pool = new ConnectionFactoryResource(poolSize, connectionFactory);
component.setConnectionResource(pool);
return component;
}
我通常是在经纪人那里设置的。AMQ/Artemis允许您创建单个死信队列。因此,如果您有一个名为foo的队列,那么当队列foo上的消息失败时,代理将创建一个DLQ.foo队列。这里就是一个例子