簡體   English   中英

Spring Integration遷移問題

[英]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.xhttps : 4.3.x

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM