我有以下配置:
<jms:inbound-gateway request-channel="requestChannel"
request-destination="requestQueue"
default-reply-destination="replyQueue"
connection-factory="connectionFactory"/>
<chain input-channel="requestChannel">
<transformer ref="xmlTransformer" method="fromXml"/>
<service-activator ref="myService" method="service"/>
<transformer ref="xmlTransformer" method="toXml"/>
<!--<delayer id="replyDelayer" default-delay="1000"/>-->
</chain>
我想延迟回复以进行调试。
没有延迟器,配置工作正常。当我添加延迟器时,重播不会到达回复目的地。
是否使用了延迟器?我没有使用此配置获得任何xsd警告。
提前谢谢。
答案 0 :(得分:1)
刚刚测试了这个案例,对我来说效果很好。
有几点要考虑:
<jms:inbound-gateway>
默认使用receiveTimeout = 5000
。但是,我发现<delayer>
仅针对1000
延迟MessageStore
。所以,应该够了
如果您的delayer使用持久性<int:header-enricher>
<int:header-channels-to-string />
</int:header-enricher>
,您应该使用:
replyChannel
也将delay task
标题存储到数据库中。并从{{1}}。
否则请分享StackTrace。