网关 default-reply-timeout 没有效果,仍然等待回复(Spring 集成)

Gateway default-reply-timeout has no effect and still waits for reply (Spring Integration)

我一直在尝试 Spring 集成中网关的回复超时,但它在我使用的以下配置中不起作用:

    <int:gateway id="TrailerGateway" service-interface="com.12lmdk.gateways.TrailerGateway" 
     default-request-channel="trailerChannel" default-reply-timeout="5000"/>

       <int:channel id="trailerChannel" />

    <int:service-activator input-channel="trailerChannel" 
    ref="trailerService" method="getTrailer"/>

我在一个 Whosebug 问题中读到,我应该在服务激活器的网关和输出通道上提供一个回复通道,并且该通道应该是可轮询的,所以我也试过了

    <int:gateway id="TrailerGateway" service-interface="com.12lmdk.gateways.TrailerGateway" default-reply-channel="trailerOutputChannel" default-reply-timeout="5000"/>

    <int:channel id="trailerChannel" />
    <int:channel id="trailerOutputChannel" >
       <int:queue/>
    </int:channel>

    <int:service-activator input-channel="trailerChannel" output-channel="trailerOutputChannel" ref="trailerService" method="getTrailer"/>

这仍然无效,回复超时无效。 (我通过在服务激活器访问的方法之一中放置 10 秒的 Thread.sleep 来测试它) 网关仍在等待服务激活器的回复,这不是我所期望的。

由于超时,如何从网关产生异常甚至空响应???

直到线程 returns 到网关时计时器才会启动。它旨在用于调用线程将工作交给另一个线程时使用,例如 QueueChannelExecutorChannel。当调用线程returns到网关时,定时器启动。