Как правильно обработать exception в apache camel
Всем привет, пытаюсь перехватить exception в rest маршруте и отдать body с кастомный описанием ошибки.
Есть в camel такой маршрут
restContext
.post(path)
.route()
.onException(IntegrationRuntimeException.class)
.handled(true)
.log(LoggingLevel.ERROR,"Ошибка загрузки документа")
.end()
.onException(ConstraintViolationException.class)
.handled(true)
.bean(OrderService.class, "handleOrder")
.log(LoggingLevel.ERROR,"Ошибка загрузки блаблабла")
.end()
.split().tokenizeXML("DOCUMENT")
.log("was split ${header.CamelSplitIndex} records")
.log("${body}")
.to("xslt:/camel/xsl/documents/out.xsl")
....
.endRest();
К маршруту по ресту обращается клиент( например postman), который вместо кастомного описания ошибки получает просто код 200 и пустое тело. (Если не хэндлить ошибку, то получаю весь stacktrace, что тоже не вариант)
Пробовал руками в тело писать так:
.onException(IntegrationRuntimeException.class)
.setHeader(Exchange.HTTP_RESPONSE_CODE, constant(HttpStatus.BAD_REQUEST))
.setBody().constant("Произошла ошибка, объект не был загружен.")
пробовал в процессоре
exchange.getMessage().setBody("ЧТО-то пошло не так");
в процессор заходит, но тело ответа всё-равно возвращается пустым.