Java ApacheCamel和只读消息队列
因此,我将使用SQS与ApacheCamel相结合。有些消息引用了s3对象。我需要将此消息路由到另一个队列,但问题是我必须在不修改消息的情况下处理与此消息s3对象关联的消息 工作流程是Java ApacheCamel和只读消息队列,java,amazon-s3,apache-camel,Java,Amazon S3,Apache Camel,因此,我将使用SQS与ApacheCamel相结合。有些消息引用了s3对象。我需要将此消息路由到另一个队列,但问题是我必须在不修改消息的情况下处理与此消息s3对象关联的消息 工作流程是 从queue-1 获取与消息关联的S3对象 如果s3对象包含选项将消息传递给队列2 如果s3对象不包含选项将消息传递给队列3 我面临着.process方法修改消息体的问题 from("queue-1") .choice() .when(header
queue-1
选项
将消息传递给队列2
选项
将消息传递给队列3
李>
我面临着.process
方法修改消息体的问题
from("queue-1")
.choice()
.when(header("option").isNotNull())
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
//FETCH S3 OBJECT }
})
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
//CHECK IF OBJECT HAS SOME OPTIONS
}
}).to("queue-2")
.when(header("option").isNull())
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
//CHECK IF BODY HAS SOME OPTIONS
}
}).to("queue-3)
.otherwise()
.log("Unknown");
那么,有没有一种解决方案可以在不修改消息的情况下存储消息 你用什么版本的骆驼?以及消息上正在修改的内容。那个么在那个些处理器方法中你们做了什么呢?@Murmav,若你们不改变处理器中的交换体的进出(取决于你们的代码),那个么消息应该是不变的