How did you shutdown the camel context? It looks like you need to wait for the aggregation to aggregate the XML for you before shutdown the camel context.
-- Willem Jiang FuseSource Web: http://www.fusesource.com (http://www.fusesource.com/) Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) (English) http://jnn.javaeye.com (http://jnn.javaeye.com/) (Chinese) Twitter: willemjiang Weibo: willemjiang On Friday, August 31, 2012 at 5:27 PM, vasukfuse wrote: > Hi All > > i have to aggregate two XML files which are available at different > times.But I am getting error in aggregation part > > here i am providing my code and error details , > > ROUTING > public void configure() { > try { > DataFormat bindy = new > BindyCsvDataFormat("com.softedge.dto"); > DataFormat bindy1 = new > BindyCsvDataFormat("com.softedge.dto1"); > from("file://TEST?fileName=order.csv&noop=true"). > unmarshal(bindy). > marshal(). > xstream(). > to("file://TESTOUT?fileName=order.xml"); > from("file://TEST?fileName=order_line.csv&noop=true"). > unmarshal(bindy1). > marshal(). > xstream(). > to("file://TESTOUT?fileName=orderLine.xml"); > Thread.sleep(100); > > > from("file://TESTOUT?idempotent=true?CamelBatchSize(2)noop=true") > .delayer(2000) > .doTry() > .aggregate(body(),new MyAggregationStrategy()) > .completionTimeout(3000) > // .batchSize(2) > > .log("aggregation test") > .to("file://TESTOUTA?fileName=aggregate.xml"); > > > The out put file should contain the data from Order.xml, OrderLine.xml > > > Order.xml headers are > > Orders Order_num Cust_Num Orderd Shipped Promised Carrier Terms PO > > OrderLine.xml headers are > > Line Order_num Line_num Item_num Price Qty Discount Extended_price BackOrder > > > > *Aggregation strategy * > public Exchange aggregate(Exchange oldExchange, Exchange newExchange) { > if (oldExchange == null) { > return newExchange; > } > > Message newIn = newExchange.getIn(); > String oldBody = oldExchange.getIn().getBody(String.class); > String newBody = newIn.getBody(String.class); > newIn.setBody("<ORDERS>"+ oldBody + newBody+"</ORDERS>"); > return newExchange; > } > > ERROR Detailes > > > *ShutdownTask] DefaultShutdownStrategy INFO Waiting as there are still 2 > inflight and pending exchanges to complete, timeout in 299 seconds. > [el-1) thread #5 - ShutdownTask] DefaultShutdownStrategy INFO > Waiting as there are still 2 inflight and pending exchanges to complete, > timeout in 298 seconds. > [d #1 - AggregateTimeoutChecker] AggregateProcessor WARN Error > processing aggregated exchange. Exchange[null]. Caused by: > [org.apache.camel.component.file.GenericFileOperationFailedException - > Cannot store file: TESTOUTA\aggregate.xml] > Cannot store file: TESTOUTA\aggregate.xml * > > The Output xml is in below format > > *aggregation.xml > format * > > Orders > Order_num > Line > Order_num > Line_num > Item_num > Price > Qty > Discount > Extended_price > BackOrder > Cust_Num > Orderd > Shipped > Promised Carrier > Terms > PO > > > Plese help me. > > > > vasu > > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/aggregation-failed-tp5718468.html > Sent from the Camel - Users mailing list archive at Nabble.com > (http://Nabble.com).
