2

私には、これは可能な限り単純なスプリング統合の例のように見えます。si4demoから学ぼうとしています。しかし、実行すると、次の例外が発生します。

スレッド「メイン」org.springframework.messaging.MessageDeliveryException の例外: Dispatcher にチャネル「application.inbox」のサブスクライバーがありません。; ネストされた例外は org.springframework.integration.MessageDispatchingException: Dispatcher has nosubscriber です

どこが間違っていますか?定義されたフローは、受信トレイ チャネルへのサブスクリプションを作成しませんか?

import org.springframework.boot.SpringApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.integration.annotation.IntegrationComponentScan;
import org.springframework.integration.annotation.MessagingGateway;
import org.springframework.integration.channel.DirectChannel;
import org.springframework.integration.dsl.IntegrationFlow;
import org.springframework.integration.dsl.IntegrationFlows;
import org.springframework.messaging.MessageChannel;

@Configuration
@ComponentScan
@IntegrationComponentScan
public class App {

    public static void main(String[] args) {

        try (ConfigurableApplicationContext ctx = SpringApplication.run(App.class, args)) {

            final Gateway gateway = ctx.getBean(Gateway.class);
            final String rs = gateway.send("hullo");
            System.out.println(rs);

        }

    }

    private static final String INBOX = "inbox";

    @MessagingGateway(defaultRequestChannel = INBOX)
    public interface Gateway {
        String send(String msg);
    }

    @Bean
    public IntegrationFlow flow() {
        return IntegrationFlows.from(INBOX)
                .transform(p -> "world")
                .get();
    }

    @Bean(name = INBOX)
    public MessageChannel inbox() {
        return new DirectChannel();
    }

}
4

1 に答える 1

3

メイン プレーヤーを見逃したようです - @EnableIntegraion:

バージョン 4.0 以降、@EnableIntegrationアノテーションが導入され、Spring Integration インフラストラクチャ Bean の登録が可能になりました (JavaDocs を参照)。このアノテーションは、Spring Boot および/または Spring Integration Messaging Annotation サポートと XML 統合構成のない Spring Integration Java DSL など、Java & Annotation 構成のみが使用される場合に必要です。

http://docs.spring.io/spring-integration/docs/4.3.0.BUILD-SNAPSHOT/reference/html/overview.html#configuration-enable-integration

于 2016-04-04T02:04:01.360 に答える