在消息筛选器下包装幂等元消息筛选器导致Mule中出现异常

在消息筛选器下包装幂等元消息筛选器导致Mule中出现异常,mule,mule-studio,Mule,Mule Studio,我陷入了一个非常小的问题 我正在尝试将一个幂等元消息筛选器包装在消息筛选器 以下是我的流程:- <idempotent-message-filter name="Validation" idExpression="#[message:payload]" doc:name="Idempotent Message"> <simple-text-file-store directory="./idempotent" /> </

我陷入了一个非常小的问题 我正在尝试将一个幂等元消息筛选器包装在消息筛选器 以下是我的流程:-

  <idempotent-message-filter name="Validation" idExpression="#[message:payload]" doc:name="Idempotent Message">
            <simple-text-file-store directory="./idempotent"  /> 
       </idempotent-message-filter>

    <flow name="tttFlow1" doc:name="tttFlow1">
        <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="path" doc:name="HTTP"/>

       <message-filter  onUnaccepted="ValidationFailFlow" doc:name="filter to validate xml" throwOnUnaccepted="true" >
        <filter ref="Validation"/>
     </message-filter>

       <logger message="Passed" level="INFO" doc:name="Logger"/>
        <set-payload value="Passed" doc:name="Set Payload"/>

      <catch-exception-strategy doc:name="Catch Exception Strategy">
            <set-payload value="EXCEPTION!" doc:name="Set Payload" />
        </catch-exception-strategy>

    </flow>
因此,我的问题很简单:-

  • 这是正确的方法吗
  • 我可以将幂等滤波器包装在下面吗 消息过滤器? 请建议

我认为,
幂等消息过滤器实际上是一个拦截消息处理器,而不是一个过滤器(实现org.mule.api.routing.filter.filter.class),因此它不能在消息过滤器中使用

但是,看起来您正在将其用于
throwonUnecepted
功能。
幂等元消息筛选器本身具有此属性,因此不需要:

<idempotent-message-filter name="Validation" idExpression="#[message:payload]" throwOnUnaccepted="true" />


多亏了Ryan,所以我的工作解决方案是:-

<idempotent-message-filter idExpression="#[message:payload]" doc:name="Idempotent Message"  throwOnUnaccepted="true"  onUnaccepted="ValidationFailFlow">
   <simple-text-file-store directory="./idempotent"  /> <!-- In memory files -->
</idempotent-message-filter>

这意味着幂等消息筛选器实际上不能被视为筛选器。。它基本上是一个需要考虑的消息处理器
<idempotent-message-filter idExpression="#[message:payload]" doc:name="Idempotent Message"  throwOnUnaccepted="true"  onUnaccepted="ValidationFailFlow">
   <simple-text-file-store directory="./idempotent"  /> <!-- In memory files -->
</idempotent-message-filter>