1
@JmsListener(destination = "myListener")
    public void receive(Event even) {

            if (event.myObj().isComp()) {
                service1.m1(even);
            }
            if (event.myObj2().isdone()) {
                service2.m2(event);
            }
    }

いろいろな組み合わせを試してみましたが、そのうちの 1 つを以下に示します

@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 番目のフィルター/条件では実行されません。私がここに欠けているものを提案してください

4

1 に答える 1

1

m1とm2に@ServiceActivatorアノテーションを付けた後、うまくいきました。残念ながら、コードを SI に変換する際にこの注釈を見逃していました

于 2016-09-02T18:54:15.260 に答える