Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Используйте Exchange Property в Camel DSL для

Автор вопроса: devОтветов: 2

Я хочу установить свойство на Camel Exchange, а затем использовать это свойство при сохранении файла. В моем верблюде dsl у меня есть следующее:

.process(processorToSetExhangeProperty)  // sets the property <uid> on the exchange
.to("file:/tmp?fileName=file-" + property("uid") + ".xml")

Файл сохраняется как:

"file-property{uid}.xml" though

Мой процессор выглядит следующим образом:

@Override
public void process(Exchange exchange) throws Exception {
    UUID uuid = UUID.randomUUID();
    exchange.setProperty("uid", uuid.toString());
    exchange.setOut(exchange.getIn());
}

Любые мысли о том, что может идти не так или как я могу этого добиться?

javaapache-camel

Ответы

Ответ 1 · рейтинг 3 · Ben Goldin

to в Camel не интерпретируется во время выполнения.

Вам следует использовать список получателей, если вы хотите создать свой URI динамически. См. https://camel.apache.org/manual/latest/faq/how-to-use-a-dynamic-uri-in-to.html

Ответ 2 · рейтинг 3 · dev

ОБНОВЛЕНО Новый ответ принят выше вместо предыдущего:


Ответ [был]:

.to("file:/tmp?fileName=file-${property.uid}") + ".xml")

Это простое выражение извлекает свойство обмена. Полный список того, что вы можете получить, см. в Справочнике по языку простых выражений.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы