Я пробовал время ожидания ответа Gateway в Spring Integration, но оно не работает в конфигурации, которую я использовал ниже:
<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"/>
Я прочитал в вопросе stackoverflow, что я долженпредоставьте канал ответа на шлюзе и выходной канал в активаторе службы, и этот канал должен быть опрашиваемым, поэтому я попробовал это также
<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"/>
Это все равно не будет работать, и время ожидания ответа не будет иметь никакого эффекта.(Я проверил это, поместив Thread.sleep в 10 секунд в один из методов, к которым обращается активатор службы). Шлюз все еще ожидает ответа от активатора службы, что не соответствует ожиданиям.
Как я могу произвести исключение или даже нулевой ответ от шлюза из-за таймаута ???