在类级别使用kafkalistener注释时,将忽略提供的errorhandler属性。当使用kafkalistner注释方法并且提供的错误处理程序正在运行时。这是预期的行为吗?
答案 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问题!