Spring批处理使用java注释java.lang.IollegalStateException:无法创建没有元数据的


  1. 尝试仅在项目中使用java工作站将字段集自动映射到域对象
  2. 在以下方面失败:

    BeanWrapperFieldSetMapper.mapFieldSet(第184行)在以下行(第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. 精确堆栈跟踪

    退出描述:org.springframework.batch.item.file.FlatFileParseException: Parsing error at line: 1 in resource=[class path resource [partner-import.csv]], input=[Mustermann,Max,dahiya.naveen@gmail.com,m]

    由:java.lang.IllegalStateException: Cannot create properties without meta data at org.springframework.batch.item.file.transform.DefaultFieldSet.getProperties(DefaultFieldSet.java:745) 引起

您缺少设置likeTokenizer.setNames(),因为您正在使用名称(Partner属性的名称)

最新更新