2016-03-03 2 views
1

Я создал одно небольшое приложение на основе Java, используя ServiceMix 3.0 с сообщениями JBI.Обновление ServiceMix 3.0 до ServiceMix 6.0 с помощью Camel

Приложение работает как, мы читаем одно местоположение файла с помощью filepoller (каждые 5 минут) и переносим файлы в другой формат, т. Е. xml to pdf.

Выходной файл мы записываем в другое местоположение файла с использованием компонента servixmix filewriter.

Теперь нам необходимо обновить с помощью Apache ServiceMix 6.0 и Camel 2.15.2.

Я новичок в Apache Camel. Я выполнил некоторую работу POC на servicemix 6.0 и верблюде 2.15.2, но не понял, для достижения нашего сценария приложения.

POC работать как с использованием файла, таймера, компонента верблюда-планировщика.

CamelContext context = new DefaultCamelContext(); 

    context.addRoutes(new RouteBuilder() { 
     public void configure() throws Exception { 
      from("timer://foo?period=1000").process(new Processor() { 
       @Override 
       public void process(Exchange exchange) throws Exception { 
        System.out.println("Hello world :" 
          + new java.util.Date().toString()); 
       } 
      }); 
     } 

    }); 
    context.start(); 
    Thread.sleep(10000); 
    context.stop(); 

Может ли кто-нибудь помочь в достижении вышеуказанного сценария.

Пожалуйста, предложите другой способ получить сценарий.

Заранее спасибо.

ответ

1

Для чтения файлов вы можете использовать file (http://camel.apache.org/file2.html). Для записи файлов вы также можете использовать компонент file. Я ничего не знаю о формате ваших файлов, поэтому ничего не могу сообщить об их обработке.

Для обработки можно использовать такие компоненты, как:

xslt (преобразование XML http://camel.apache.org/xslt.html),

fop (преобразование в PDF http://camel.apache.org/fop.html),

velocity (преобразование в XML по шаблону http://camel.apache.org/velocity.html), и т.д.

или вы можете использовать некоторые форматы данных: http://camel.apache.org/data-format.html как BeanIO (http://camel.apache.org/beanio.html).

Пример:

from("file://inbox?sortBy=file:name&include=(.*[.](xml|XML)$)&delete=true&preMove=inprogress&delay=300000"). 
    //5 min. delay between poll, consuming only xml file 
     routeId("testRoute") 
    .to("xslt:xsl/transform.xsl") //refers to the file xsl/transform.xsl on the classpath 
    //....... some other transformation here ....... 
    .to("file://outbox"); 
Смежные вопросы