2014-10-27 46 views
4
  1. 創建屬性試圖自動映射字段集使用Java anotations只有在項目
  2. 在下面的失敗域對象:Spring Batch的使用Java註釋java.lang.IllegalStateException:不能沒有元數據

    BeanWrapperFieldSetMapper.mapFieldSet( (第187行):

    binder.bind(new MutablePropertyValues(getBeanProperties(copy, fs.getProperties()))); 
    @Override 
    public Properties getProperties() { 
        if (names == null) { 
         throw new IllegalStateException("Cannot create properties without meta data"); 
        } 
    

    注:我沒有指定名稱,因爲我試圖自動映射。

  3. 以下是我的代碼:

    @Bean 
        public LineMapper<Partner> lineMapper() { 
         DefaultLineMapper<Partner> lineMapper = new DefaultLineMapper<Partner>(); 
         DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer(); 
         BeanWrapperFieldSetMapper<Partner> fieldSetMapper = new BeanWrapperFieldSetMapper<Partner>(); 
         fieldSetMapper.setBeanFactory(getApplicationContext()); 
         fieldSetMapper.setTargetType(Partner.class); 
         lineMapper.setLineTokenizer(lineTokenizer); 
         lineMapper.setFieldSetMapper(fieldSetMapper); 
         return lineMapper; 
        } 
    
  4. 精確的堆棧跟蹤

    退出,DESCR。 :org.springframework.batch.item.file.FlatFileParseException: Parsing error at line: 1 in resource=[class path resource [partner-import.csv]], input=[Mustermann,Max,[email protected],m]

    產生的原因:java.lang.IllegalStateException: Cannot create properties without meta data at org.springframework.batch.item.file.transform.DefaultFieldSet.getProperties(DefaultFieldSet.java:745)

回答

1

你缺少設置likeTokenizer.setNames()是因爲您名字的時候我試圖自動映射(您Partner屬性的名稱)

+0

,請參閱6.6.2.7 。將字段自動映射到來自批處理的域對象 我不應該要求指定名稱。 – explorer 2014-10-29 23:23:51

+0

您是否將標題名稱放入csv文件? – 2014-10-30 06:14:55

+0

是的,我有第一條記錄作爲合作伙伴bean中的確切列名。 – explorer 2014-10-30 21:10:52

相關問題