Mule流中自定义过滤器后返回不同的响应

Mule流中自定义过滤器后返回不同的响应,mule,Mule,这似乎是一件很普通的事情,但我很难弄清楚如何让它工作。我为具有入站http端点的请求-响应流编写了一个自定义过滤器。自定义筛选器将检查某些必需的查询参数是否存在并包含有效值。如果筛选器拒绝消息,我希望返回HTTP错误状态代码,但我无法确定如何发送不同的响应 骡子医生说: 如果流上定义的入站端点具有请求-响应 交换模式,并且在您的流中没有响应块 所使用的响应只是来自最后一个消息处理器的结果 在流中,它将为null 我不确定这是否完全准确。我的流确实有一个块,但如果我的自定义筛选器返回false,则

这似乎是一件很普通的事情,但我很难弄清楚如何让它工作。我为具有入站http端点的请求-响应流编写了一个自定义过滤器。自定义筛选器将检查某些必需的查询参数是否存在并包含有效值。如果筛选器拒绝消息,我希望返回HTTP错误状态代码,但我无法确定如何发送不同的响应

骡子医生说:

如果流上定义的入站端点具有请求-响应 交换模式,并且在您的流中没有响应块 所使用的响应只是来自最后一个消息处理器的结果 在流中,它将为null

我不确定这是否完全准确。我的流确实有一个
块,但如果我的自定义筛选器返回false,则不会调用它

如果筛选器拒绝消息,返回不同响应的最佳方式是什么

以下是我的流程示例:

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

    <http:body-to-parameter-map-transformer />

    <custom-filter class="com.mycompany.MyQueryParamFilter"/>

    <!--  Process valid messages here -->

    <response>
       <!--  Return a successful response  -->
    </response>
</flow>

编辑:以下是推断将执行
块的文档。

在您的情况下,使用a会更好:

<choice>
  <when expression="...validation expression...">
    <!--  Process valid messages here -->
    <!--  Return a successful response  -->
  </when>
  <otherwise>
    <!--  Return a failure response  -->
  </otherwise>
</choice>    


如果
选择
位于
流程的末尾

我最初是沿着这条路径走的,但对我来说它似乎不是最干净的设计,则不需要
响应
元素。我有很多这样的流,我不喜欢到处嵌套这些条件。我觉得简单的定制过滤器看起来更吸引人。我认为文档不清楚:责任在过滤器上,所以我相信响应元素必须在过滤器之前。关于
选择
,我不知道您如何能够只使用过滤器返回不同的响应(成功或失败)。。。