Hi I am trying to parse some CSV data. Camel Bindy component seems to be doing its job well. When I am taking the data to a processor to access each Object separately and do the processing, I see that Bindy returns a List and the List contains a Hashmap!!
Is there a way to configure Bindy to return a list of Java Objects instead of Hashmap? I did a debug and the screenshot attached. In the debug view, we see that exchange->in contains a HashMap. Can you suggest how can i retrieve the data? If its HashMap, what would be the keys to retrieve the value? <http://camel.465427.n5.nabble.com/file/n5750340/Bindy.jpg> My Camel Code is * <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:amq="http://activemq.apache.org/schema/core" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd"> <bean id="bindyDataformat" class="org.apache.camel.dataformat.bindy.csv.BindyCsvDataFormat"> <constructor-arg value="com.poc.camel.csv.java.bindy" /> </bean> <bean id="csv" class="com.poc.camel.csv.java.bindy.HandleOrderBean" /> <camelContext xmlns="http://camel.apache.org/schema/spring"> <dataFormats> <jaxb id="myJaxb" prettyPrint="true" contextPath="com.poc.camel.csv.java.bindy" /> </dataFormats> <route streamCache="true"> <from uri="file://C:/Users/Mathews/Desktop/in" /> <unmarshal ref="bindyDataformat" /> <to uri="bean:csv" /> </route> <route> <from uri="seda:queue:in" /> <to uri="log:reached route 2"/> <marshal ref="myJaxb" /> <to uri="file://C:/Users/Mathews/Desktop/out" /> </route> </camelContext> </beans> * And Java code is * package com.poc.camel.csv.java.bindy; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.camel.Exchange; import org.apache.camel.Processor; public class HandleOrderBean implements Processor { @SuppressWarnings("unchecked") @Override public void process(Exchange exchange) throws Exception { // TODO Auto-generated method stub List list=new ArrayList<Result>(); list = (List) exchange.getIn().getBody(); System.out.println("Wanna convert things into XML now"); System.out.println("Wanna convert things into XML now"); /*list.toString();*/ } } * and My POJO class is package com.poc.camel.csv.java.bindy; import java.io.Serializable; import javax.xml.bind.annotation.XmlRootElement; import org.apache.camel.dataformat.bindy.annotation.CsvRecord; import org.apache.camel.dataformat.bindy.annotation.DataField; @XmlRootElement @CsvRecord(separator = ",",crlf="WINDOWS",generateHeaderColumns=false) public class Result implements Serializable{ @DataField(pos = 1) private String firstName; @DataField(pos = 2) private String lastName; @DataField(pos = 3) private String rollNo; @DataField(pos = 4) private String result; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getRollNo() { return rollNo; } public void setRollNo(String rollNo) { this.rollNo = rollNo; } public String getResult() { return result; } public void setResult(String result) { this.result = result; } } -- View this message in context: http://camel.465427.n5.nabble.com/Camel-Bindy-Issues-with-returntype-tp5750340.html Sent from the Camel - Users mailing list archive at Nabble.com.