FlatFileParseException 解析错误 - Spring Batch
Posted
技术标签:
【中文标题】FlatFileParseException 解析错误 - Spring Batch【英文标题】:FlatFileParseException Parsing error - Spring Batch 【发布时间】:2016-02-16 15:05:18 【问题描述】:我关注了这个tutorial,我收到了FlatFileParseException
错误:
org.springframework.batch.item.file.FlatFileParseException:解析 行错误:1 in resource=[class path resource [country.csv]], 输入=[AA,阿鲁巴]
country.csv
AA,Aruba
BB,Baruba
这是我的ItemReader
方法
@Bean
public ItemReader<Country> reader()
FlatFileItemReader<Country> reader = new FlatFileItemReader<Country>();
reader.setResource(new ClassPathResource("country.csv"));
reader.setLineMapper(new DefaultLineMapper<Country>()
setLineTokenizer(new DelimitedLineTokenizer()
setNames(new String[] "countryCode", "countryName" );
);
setFieldSetMapper(new BeanWrapperFieldSetMapper<Country>()
setTargetType(Country.class);
);
);
return reader;
和Country.java
@Entity
@Table(name="Country")
public class Country
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false, updatable = false)
Long id;
@Column(name = "countryCode", nullable = false, updatable = false)
String countryCode;
@Column(name = "countryName", nullable = false, updatable = false)
String countryName;
public Country(String countryCode, String countryName)
this.countryCode = countryCode;
this.countryName = countryName;
public Long getId()
return id;
public void setId(Long id)
this.id = id;
public String getCountryCode()
return countryCode;
public void setCountryCode(String countryCode)
this.countryCode = countryCode;
public String getCountryName()
return countryName;
public void setCountryName(String countryName)
this.countryName = countryName;
@Override
public String toString()
return "countryCode: " + countryCode + ", countryName: " + countryName;
【问题讨论】:
请发布完整的堆栈跟踪;但我将从Country
的 empty-ctor 和 countryName
的 setter 开始
【参考方案1】:
这里的问题是您在 Country
类中缺少默认的无参数构造函数。
您正在使用BeanWrapperFieldSetMapper
将FieldSet
映射到对象。引用setTargetType(type)
Javadoc:
每次调用
mapFieldSet(FieldSet)
时,都会从其默认构造函数中创建一个这种类型的对象。
因此,您需要添加一个默认构造函数并为属性提供相应的getter / setter。
【讨论】:
以上是关于FlatFileParseException 解析错误 - Spring Batch的主要内容,如果未能解决你的问题,请参考以下文章
第4.4节 Python解析与推导:列表解析字典解析集合解析