Not sure if only one processor in allowed withing a Camel context. Having the below intercept code which would call a different Processor "marsTraceProcessor" to create a JPA Entity is actually messing up the Processor within the actual route that processes the message.
<intercept> <process ref="marsTraceProcessor"/> <to uri="jpa://org.apache.camel.processor.interceptor.JpaTraceEventMessage?persistenceUnit=tracer"/> </intercept> The out put of the below processor seems to be messed up with the JPA Entity created in the intercept Processor. <route> <from uri="file:C:\\camelProject\\data\\inbox\\mars"/> <process ref="marsProcessor"/> </route> *Intecept Processor code:* public class MarsTraceProcessor implements Processor { private static Logger log = Logger.getLogger(MarsTraceProcessor.class); @Override public void process(Exchange exchange) throws Exception { MarsTracerEntity entity = new MarsTracerEntity(); if(null != exchange.getIn().getHeader("CamelFileNameOnly")) entity.setInputFileName((String)exchange.getIn().getHeader("CamelFileNameOnly")); if(null != exchange.getIn().getHeader("CamelBatchSize")) entity.setBatchSize((Integer)exchange.getIn().getHeader("CamelBatchSize")); if(null != exchange.getIn().getHeader("breadcrumbId")) entity.setOutputFileName((String)exchange.getIn().getHeader("breadcrumbId")); log.info("InputFilename 5555 : "+entity.getInputFileName()); log.info("outputFilename 2222 : "+entity.getOutputFileName()); log.info("Batch 1111 : "+entity.getBatchSize()); exchange.getIn().setBody(entity); } } *Processor within Route:* public class MarsProcessor implements Processor { private static Logger log = Logger.getLogger(MarsProcessor.class); @Override public void process(Exchange exchange) throws Exception { MarsParser jniParser = new MarsParser(); List<ParsedDataBean> marsData = jniParser.parseMarsRecords(exchange); ProducerTemplate prod = exchange.getContext().createProducerTemplate(); for(ParsedDataBean data: marsData){ log.info("File name : "+data.getFileName()); exchange.getIn().setBody(data.getData()); exchange.getIn().setHeader(Exchange.FILE_NAME,data.getFileName()); exchange.getIn().setHeader(Exchange.BATCH_SIZE, data.getSize()); //log.info("File name : "+exchange.getIn().getBody()); prod.send("seda:marsDataProcessingQueue", exchange); } } } -- View this message in context: http://camel.465427.n5.nabble.com/convert-Exchange-Headers-to-JPA-Entity-tp5077846p5080368.html Sent from the Camel - Users mailing list archive at Nabble.com.