[英]Spring Integration migration issue
我在應用程序的不同位置都有這種鏈條:
<int:chain input-channel="updateAdministratorChannel">
<int:filter expression="payload.isAdministatorPublished"/>
<int:service-activator expression="..."/>
<int:gateway request-channel="mergeEntityChannel"/>
<int:logging-channel-adapter logger-name="..." expression="'...'"/>
</int:chain>
Spring Integration 3.0.1.RELEASE版本一切正常。 我們決定遷移到4.2.x版本,並且過濾器出現問題:當條件為false時,系統掛起(直到我認為超時)。 最后,我不得不添加一個廢棄通道並像這樣修改我的鏈:
<int:chain input-channel="updateAdministratorChannel">
<int:filter expression="payload.isAdministatorPublished" discard-channel="defaultDiscardChannel"/>
<int:service-activator expression="..."/>
<int:gateway request-channel="mergeEntityChannel"/>
<int:logging-channel-adapter logger-name="..." expression="'...'"/>
</int:chain>
<int:header-value-router input-channel="defaultDiscardChannel" header-name="replyChannel"/>
我已經閱讀了《 遷移指南》,但對此一無所獲。 我錯過了什么 ?
Spring version : 4.2.5.RELEASE
Spring Integration version : 4.2.6.RELEASE
您的擔憂尚不清楚,因為這是預期的行為:默認情況下使用filter
時,只會丟棄丟棄的消息。
不確定您期望的行為或所聲稱的行為在3.0.x
版中是否有效,但是不確定您的配置是否在一開始就具有消息傳遞網關,您期望您會收到<chain>
答復。 當然,當您在過濾器級別不執行任何操作時,這是不可能的。
使用discard-channel
是正確的解決方案。
另一種選擇是可能的, throw-exception-on-rejection="true"
和<gateway>
上的error-channel
,可以在那里捕獲那些丟棄的消息並重新發送作為回復。
注意:Spring Integration 4.2
已經不支持。 如果無法升級到5.0.x
建議至少升級到4.3.x
: https : 4.3.x
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.