Консольный ввод Apache-Camel

1

Я пытаюсь сделать небольшую программу, которая принимает входные данные консоли, такие как имя пользователя, школьную и другую информацию, а затем создает файл, имя файла которого принадлежит пользователю. Затем каждый файл будет находиться в папке, названной в честь школы. Я не уверен, как создать файл с такими качествами, поскольку Camel, кажется, определяет путь и имя файла перед чтением любого ввода. Есть ли способ обойти эту проблему?

Теги:
apache-camel

1 ответ

1
Лучший ответ

На странице компонента файла есть пример:

// set the output filename using java code logic, notice that this is done by setting
// a special header property of the out exchange
exchange.getOut().setHeader(Exchange.FILE_NAME, "report.txt");

вы можете заменить report.txt именем файла, который хотите использовать.

Что касается каталога, не можете ли вы сохранить имя каталога в заголовке и ссылаться на него с конечной точки:

.to("file://${headers.directory}");

подробнее здесь: http://camel.apache.org/file2.html

  • 0
    Спасибо за ответ. Часть имени файла работает правильно. Однако я не могу понять, как заставить работать каталог. Когда я пытаюсь установить каталог, это вызывает исключение. Dynamic expressions with ${ } placeholders is not allowed. Use the fileName option to set the dynamic expression. at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:910)
  • 0
    Неважно, я понял это. Вместо того, to(Endpoint endpoint) использовать to(Endpoint endpoint) я использовал recipientList(simple("${header.directory}"))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню