0
我完全不知道我做错了什么。以下是可用的2个代码片段。但是,如果我需要将snippet-2的处理器放入代码片段1中,则不起作用。 请帮我知道原因。我现在需要紧急解决这个问题。Apache Camel Multicast CBR不能与多核处理器一起使用处理器
工作片断-1
from("file:inbox")
.multicast()
.to("seda:a")
.choice()
.when(header("foo").isEqualTo("one"))
.to("log:org.apache.camel.DeadLetterChannel?level=error")
.otherwise()
.to("file://d://log//camel//output1<file:///d://log//camel//output1>")
.to("seda:b")
.choice()
.when(header("foo").isEqualTo("one"))
.to("log:org.apache.camel.DeadLetterChannel?level=error")
.otherwise()
.to("file://d://log//camel//output2<file:///d://log//camel//output2>");
工作片断-2
from("file:inbox")
.multicast()
.process(new MutlicastRecoveryProcessor (“output1”))
.to ("file://d://log//camel//output1<file:///d://log//camel//output1>")
. process(new MutlicastRecoveryProcessor (“output2”))
.to("file://d://log//camel//output2<file:///d://log//camel//output2>");
class MutlicastRecoveryProcessor implements Processor {
private String endpointSeqID;
public MutlicastRecoveryProcessor(String endpointSeqID) {
this.endpointSeqID = endpointSeqID;
}
@Override
public void process(Exchange exchange) throws Exception {
if (“output1”.equals(this.endpointSeqID)) {
exchange.getIn().setHeader(“foo”,”one”);
}
}
}
非工作片断-1
from("file:inbox")
.multicast()
.process(new MutlicastRecoveryProcessor (“output1”))
.to("seda:a")
.choice()
.when(header("foo").isEqualTo("one"))
.to("log:org.apache.camel.DeadLetterChannel?level=error")
.otherwise()
.to("file://d://log//camel//output1<file:///d://log//camel//output1>")
.process(new MutlicastRecoveryProcessor (“output2”))
.to("seda:b")
.choice()
.when(header("foo").isEqualTo("one"))
.to("log:org.apache.camel.DeadLetterChannel?level=error")
.otherwise()
.to("file://d://log//camel//output2<file:///d://log//camel//output2>");
class MutlicastRecoveryProcessor implements Processor {
private String endpointSeqID;
public MutlicastRecoveryProcessor(String endpointSeqID) {
this.endpointSeqID = endpointSeqID;
}
@Override
public void process(Exchange exchange) throws Exception {
if (“output1”.equals(this.endpointSeqID)) {
exchange.getIn().setHeader(“foo”,”one”);
}
}
}