类级别的KafkaListener批注,忽略了errorhandler属性

时间:2018-12-14 11:56:44

标签: spring-kafka

在类级别使用kafkalistener注释时,将忽略提供的errorhandler属性。当使用kafkalistner注释方法并且提供的错误处理程序正在运行时。这是预期的行为吗?

1 个答案:

答案 0 :(得分:1)

这确实是错误。这段代码:

    String errorHandlerBeanName = resolveExpressionAsString(kafkaListener.errorHandler(), "errorHandler");
    if (StringUtils.hasText(errorHandlerBeanName)) {
        endpoint.setErrorHandler(this.beanFactory.getBean(errorHandlerBeanName, KafkaListenerErrorHandler.class));
    }

在以下位置丢失:

private void processMultiMethodListeners(Collection<KafkaListener> classLevelListeners, List<Method> multiMethods,
        Object bean, String beanName) {

不幸的是,我没有解决此问题的简单方法。请考虑使用一个单独的@KafkaListener方法,其中一个Object作为有效负载,并使用该方法手动类型路由给其他人。

随时提出有关此问题的GitHub问题!