2013-12-17 3 views
2

Я делаю преобразование формата данных между POJO и CSV и наоборот. При этом при преобразовании CSV в файл Object (Unmarshalling) я получаю незаконное исключение аргумента для типа данных int. Только для струны работает нормально. Ниже мой POJOApache camel: bindy незаконный аргумент exception

@CsvRecord(separator="//|",crlf="UNIX",generateHeaderColumns=false) 
public class EmployeeVO implements Serializable{ 

    private static final long serialVersionUID = -663135747565879908L; 

    @DataField(pos=1) 
    private String name; 

    @DataField(pos=3) 
    private Integer age; 

    @DataField(pos=2) 
    private String grade; 
     // getter setter 
} 

CSV данные

sumit|4th standrad|22 

выше CSV генерируется из приведенного выше POJO. Но в то время преобразования CSV в POJO я получаю folloing исключения

java.lang.IllegalArgumentException: Parsing error detected for field defined at the position: 3, line: 1 

Ниже мой верблюд - файл контекста для справки

маршал

<route> 
     <from uri="cxf:bean:rtoemplyeeService"/> 
     <convertBodyTo type="java.lang.String" id="stringInput"/> 
     <bean ref="govtEmpBean" method="getEmployeeCSV" beanType="govtEmpBean" id="govtEmp"/> 
     <log message="before marshalling ================== ${body}"/> 
     <marshal ref="bindyDataformat"> 
      <bindy type="Csv" packages="com.mycompany.converter.vo"/> 
     </marshal> 
     <log message="after marshalling ================== ${body}"/> 
     <to uri="file://D:/JATO_WORK/repo_bkp/csv/"/> 
     <setBody> 
      <simple>CSV output is generated at file system </simple> 
     </setBody> 
    </route> 

ипа маршалом

<route id="csvtoobject"> 
     <from uri="file://D:/JATO_WORK/repo_bkp/csv?delay=10000&amp;initialDelay=10"/> 
     <log message="csv string ============= ${body}"/> 
     <unmarshal ref="bindyDataformat"/> 
     <log message="${body}"/> 
     <bean ref="govtEmpBean" method="printCSVObject" beanType="govtEmpBean" id="govtEmp"/> 
    </route> 
+0

является POJO термином java для типа POD? –

+0

его простой старый объект java, простой java bean с собственностью и getter сеттеры – vashishth

ответ

1

Вам необходимо указать запись csv следующим образом:

@CsvRecord(separator = "\\|")