Mule流中自定义过滤器后返回不同的响应
这似乎是一件很普通的事情,但我很难弄清楚如何让它工作。我为具有入站http端点的请求-响应流编写了一个自定义过滤器。自定义筛选器将检查某些必需的查询参数是否存在并包含有效值。如果筛选器拒绝消息,我希望返回HTTP错误状态代码,但我无法确定如何发送不同的响应 骡子医生说: 如果流上定义的入站端点具有请求-响应 交换模式,并且在您的流中没有响应块 所使用的响应只是来自最后一个消息处理器的结果 在流中,它将为null 我不确定这是否完全准确。我的流确实有一个Mule流中自定义过滤器后返回不同的响应,mule,Mule,这似乎是一件很普通的事情,但我很难弄清楚如何让它工作。我为具有入站http端点的请求-响应流编写了一个自定义过滤器。自定义筛选器将检查某些必需的查询参数是否存在并包含有效值。如果筛选器拒绝消息,我希望返回HTTP错误状态代码,但我无法确定如何发送不同的响应 骡子医生说: 如果流上定义的入站端点具有请求-响应 交换模式,并且在您的流中没有响应块 所使用的响应只是来自最后一个消息处理器的结果 在流中,它将为null 我不确定这是否完全准确。我的流确实有一个块,但如果我的自定义筛选器返回false,则
块,但如果我的自定义筛选器返回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>
如果
选择
位于流程的末尾
我最初是沿着这条路径走的,但对我来说它似乎不是最干净的设计,则不需要响应
元素。我有很多这样的流,我不喜欢到处嵌套这些条件。我觉得简单的定制过滤器看起来更吸引人。我认为文档不清楚:责任在过滤器上,所以我相信响应元素必须在过滤器之前。关于选择
,我不知道您如何能够只使用过滤器返回不同的响应(成功或失败)。。。