我使用 SpringIntegration-filter 来验证我的 WS 消息。我实现了 Validators 进行验证,如果 WS 消息有效,它们返回 true。但是如果 WS 消息无效,它们会抛出 MyValidationException。
有没有办法使用 SpringIntegration-filter 来处理这种异常?如果我不返回 false,则过滤器不起作用。
我的代码示例如下。我想在丢弃流中使用我的验证异常。
@Bean
public IntegrationFlow incomingRequest() {
return f -> f
.<IncomingRequest>filter(message ->
validatorFactory.validator(message.getName())
.validate(message),
filterEndpointSpec ->
filterEndpointSpec.discardChannel(discardChannel()))
.<IncomingRequest>handle((payload, headers) ->
applicationService.handle(payload));
}
@Bean
public IntegrationFlow discard() {
return IntegrationFlows.from(discardChannel())
.log("DISCARD FLOW")
.get();
}
@Bean(name = "discard.input")
public MessageChannel discardChannel() {
return MessageChannels.direct().get();
}