Hi,
I'm accessing a route through both producertemplate and a QuartzScheduler.

*Route:*
<route id="uaasRoute">
 <from uri="direct:hivein" />
 <setBody>
  <el>select * from table where empId=${in.body.EmpId}</el>
 </setBody> 
 <to uri="jdbc:hive-ds?resetAutoCommit=false" />
 <to uri="mock:result" />
</route>

*I'm able to successfully pass employee id using producer template like
below,*

Map<String,Object> bodyMap = new HashMap<String,Object>();
                bodyMap.put("EmpId", "23456");
Object out = ProducerTemplate.requestBody("direct:hivein",bodyMap);

But unable to achieve the same using quartzScheduler route,
camel.addRoutes( new RouteBuilder() {
                        @Override
                        public void configure() throws Exception {
                                
from("quartz2://sampleGroup/sampleTimer?trigger.repeatCount=1")
                                .routeId("scheduler").noAutoStartup()
                                .setBody(new 
SimpleExpression(bodyMap.toString()))
                                .convertBodyTo(Map.class)
                                .to("direct:hivein");
                        }
                });

Facing the issue,
Caused by: org.apache.camel.NoTypeConversionAvailableException: No type
converter available to convert from type: java.lang.String to the required
type: java.util.Map

Is there any other way to achieve similar logic as ProducerTemplate in
QuartzScheduler?

Thanks,
Vinoth.



--
View this message in context: 
http://camel.465427.n5.nabble.com/Camel-route-set-map-object-in-body-tp5780863.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to