0
Я совершенно не знаю, что я делаю неправильно. Ниже приведены 2 фрагмента кода, которые работают. Но если мне нужно разместить процессор фрагмента-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”);
}
}
}