#java #apache-camel
#java #apache-camel
Вопрос:
Я попытался установить строку с пустым пространством в качестве константы в Camel.
from("timer:test?fixedRate=trueamp;period=5000")
.setBody().constant(" ")
.log("'${body}'")
;
Похоже, это не работает, потому что приведенный выше код выводит «как вывод журнала.
Я использую Camel версии 2.23.1 и выяснил, что методу constant в классе ExpressionClauseSupport необходимо установить для атрибута trim значение true при создании ConstantExpression. Смотрите создание объекта и обрезку строки константы.
На мой взгляд, константу не следует обрезать или я ошибаюсь?
Комментарии:
1. Как насчет использования StringBuilder вместо обычной строки? Это может быть обходным путем.
2. Хорошая идея для обхода @pino! Но, конечно, это не долгосрочное решение проблемы, потому что StringBuilder является изменяемым объектом, и определенный экземпляр может быть изменен при выполнении маршрута.
Ответ №1:
Может быть это?
ConstantExpression exp = new ConstantExpression(" ");
exp.setTrim(false);
from("timer:test?fixedRate=trueamp;period=5000")
.setBody(exp)
.log("'${body}'");
Комментарии:
1. Спасибо. Это действительно помогло!