Как установить пустое пространство как константу в Apache Camel?

#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. Спасибо. Это действительно помогло!