Java Spring云流(Kafka)参数化指定的错误通道{destination}.{group}.errors
我正在尝试查看传递给@ServiceActivator的错误通道是否可以根据YAML中指定的值进行绑定/参数化,而不是在代码本身中硬编码实际目的地和使用者组Java Spring云流(Kafka)参数化指定的错误通道{destination}.{group}.errors,java,spring,kafka-consumer-api,spring-kafka,spring-cloud-stream,Java,Spring,Kafka Consumer Api,Spring Kafka,Spring Cloud Stream,我正在尝试查看传递给@ServiceActivator的错误通道是否可以根据YAML中指定的值进行绑定/参数化,而不是在代码本身中硬编码实际目的地和使用者组 @ServiceActivator( // I do not want to hardcode destination and consumer group here inputChannel = "stream-test-topic.my-consumer-group.errors"
@ServiceActivator(
// I do not want to hardcode destination and consumer group here
inputChannel = "stream-test-topic.my-consumer-group.errors"
)
public void handleError(ErrorMessage errorMessage) {
// Getting exception objects
Throwable errorMessagePayload = errorMessage.getPayload();
log.error("exception occurred", errorMessagePayload);
// Get message body
Message<?> originalMessage = errorMessage.getOriginalMessage();
if (originalMessage != null) {
log.error("Message Body: {}", originalMessage.getPayload());
} else {
log.error("The message body is empty");
}
}
@ServiceActivator(
//我不想在这里硬编码目的地和消费者组
inputChannel=“流测试主题。我的消费者组。错误”
)
公共无效句柄错误(ErrorMessage ErrorMessage){
//获取异常对象
Throwable errorMessagePayload=errorMessage.getPayload();
log.error(“发生异常”,errorMessagePayload);
//获取消息正文
Message originalMessage=errorMessage.getOriginalMessage();
if(originalMessage!=null){
错误(“消息体:{}”,originalMessage.getPayload());
}否则{
log.error(“消息正文为空”);
}
}
您不能使用@ServiceActivator
;改用Java DSL:
@Value(“${error.channel}”)
字符串错误;
@豆子
公共集成流(){
返回IntegrationFlows.from(this.errors)
.handle(msg->{
System.out.println(msg);
})
.get();
}
设定
error:
channel: stream-test-topic.my-consumer-group.errors