将@JmsListener 代码转换为字符串集成 DSL
Convert @JmsListener code to String Integration DSL
@JmsListener(destination = "myListener")
public void receive(Event even) {
if (event.myObj().isComp()) {
service1.m1(even);
}
if (event.myObj2().isdone()) {
service2.m2(event);
}
}
我尝试了多种组合,下面是其中一种
@Bean
public IntegrationFlow flow1() {
return IntegrationFlows
.from(Jms.messageDrivenChannelAdapter(connectionFactory).destination("incomingQueue"))
.<Event>filter(e -> ((Event)e).myObj().isComp()).handle(service1, "m1")
.<Event>filter(e -> ((Event)e).myObj2().isdone()).handle(service2, "m2")//looks like its not called
.get();
}
但它不会在第 2 天执行 filter/condition。请建议我在这里缺少什么
我在 m1 和 m2 上放置 @ServiceActivator 注释后,它起作用了。糟糕,我在将代码转换为 SI
时错过了这个注释
@JmsListener(destination = "myListener")
public void receive(Event even) {
if (event.myObj().isComp()) {
service1.m1(even);
}
if (event.myObj2().isdone()) {
service2.m2(event);
}
}
我尝试了多种组合,下面是其中一种
@Bean
public IntegrationFlow flow1() {
return IntegrationFlows
.from(Jms.messageDrivenChannelAdapter(connectionFactory).destination("incomingQueue"))
.<Event>filter(e -> ((Event)e).myObj().isComp()).handle(service1, "m1")
.<Event>filter(e -> ((Event)e).myObj2().isdone()).handle(service2, "m2")//looks like its not called
.get();
}
但它不会在第 2 天执行 filter/condition。请建议我在这里缺少什么
我在 m1 和 m2 上放置 @ServiceActivator 注释后,它起作用了。糟糕,我在将代码转换为 SI
时错过了这个注释