2013-06-13 3 views
0

Моя первоначальная проблема заключается в том, что я хочу использовать System.currentTimeMillis() как fileName.
Try1Apache Camel не работает с Groovy

{date:now:SimpleDateFormat} 

не поддерживает его. Я могу печатать миллисекунды с S, но его отличие от предыдущей секунды.
Try2 Пробовал использовать inline groovy dsl, но получил ошибку. Я думаю, что это был неправильный подход, но я люблю, чтобы иметь поддержку встроенного языка сценариев в Camel

<to uri="file://D:/Projects/?fileName=TestPipeline_$groovy{new Date()}.txt"/> 

Попробуйте 3 Теперь я опустил мои ожидания и думал использовать паз прямо вперед. В первом проходе попытался Sping DSL example , просто писать

<groovy>new Date()</groovy> 

Но контекст приложения не распознает groovy тега.

Invalid content was found starting with element 'groovy'. One of 

Я пользуюсь Camel 2.9.2 и прилагаю верблюд-groovy-2.9.2.jar в папке lib.

ответ

1

Я думаю, что у Вас есть ошибка в вашем 3 раза, потому что <groovy> разрешено только в <translate><setBody> или <setHeader> (там могут быть и другие варианты).

Я хотел бы попробовать что-то вроде:

редактируемого

<setHeader headerName="nowInMillis"> 
    <groovy>new Date().getTime()</groovy> 
</setHeader> 
<log message="/////////////// ${in.header.nowInMillis}" loggingLevel="INFO"/> 
<to uri="file://D:/Projects/?fileName=TestPipeline_${in.header.nowInMillis}.txt"/> 

Надеется, что это помогает, Gergely

+0

Спасибо. Я не получил никаких ошибок, но не получил времени в миллисекундах. fileName = Test _ $ {in.header.nowInMillis} .txt вернул файл Test_.txt. –

+0

это сработало для меня ... Я редактировал сценарий. Попробуй еще раз. –

+0

Новый скрипт выглядит отлично для меня. Но почему-то я все еще получаю TestPipelline_.txt. Однако на консоли нет ошибок. –

Смежные вопросы