如果Function中拋出異常,系統沒有配置捕獲異常,則異常消息會被丟棄。通常會進行配置。
@ServiceActivator(inputChannel = "my-destination.my-group.errors")
public void handleError(ErrorMessage message) {
Throwable throwable = message.getPayload();
log.error("截獲異常", throwable);
Message<?> originalMessage = message.getOriginalMessage();
assert originalMessage != null;
log.info("原始消息體 = {}", new String((byte[]) originalMessage.getPayload()));
}
詳情參考:
https://www.itmuch.com/spring-cloud/spring-cloud-stream-error-handling/