我使用jackson-dataformat-csv读取csv文件,并且在尝试使用下面的代码行解析mappingIterator时得到一个NoSuchMethodError
MyRecord record = (MyRecord) it.nextValue();(稍微修改了一下,删除了ex处理)
CsvMapper csvMapper = new CsvMapper();
CsvSchema schema = csvMapper.schemaFor(MyRecord.class);
@SuppressWarnings("rawtypes")
MappingIterator<Entry> it = csvMapper.reader(MyRecord.class)
.with(schema).readValues(filename);
List<MyRecord> records = new ArrayList<>();
while (it.hasNextValue()) {
MyRecord record = (MyRecord) it.nextValue();
records.add(record);
}https://github.com/FasterXML/jackson-dataformat-csv/issues/49
我的问题与这个问题非常接近,除了我已经尝试过确保jackson-core、jackson-databind、jackson-dataformat-csv和jackson-annotation都是相同版本(2.8)的解决方案。它看起来像是2.9改变了现在的情况,但在我的公司,我不能访问2.9。有没有其他可能会有冲突的包?
错误:
Exception in thread "main" java.lang.NoSuchMethodError: com.fasterxml.jackson.core.util.BufferRecycler.allocCharBuffer(II)[C
at com.fasterxml.jackson.dataformat.csv.impl.TextBuffer.findBuffer(TextBuffer.java:160)
at com.fasterxml.jackson.dataformat.csv.impl.TextBuffer.emptyAndGetCurrentSegment(TextBuffer.java:404)
at com.fasterxml.jackson.dataformat.csv.impl.CsvDecoder.nextString(CsvDecoder.java:607)
at com.fasterxml.jackson.dataformat.csv.CsvParser._handleNextEntry(CsvParser.java:678)
at com.fasterxml.jackson.dataformat.csv.CsvParser.nextToken(CsvParser.java:523)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:118)
at com.fasterxml.jackson.databind.MappingIterator.nextValue(MappingIterator.java:189)发布于 2017-06-28 17:24:32
这个问题已经解决了,尽管我仍然不能确定根本原因。我认为根本原因可能特定于我自己的用例(我的公司使用自己的内部系统来进行本地开发工作区以及依赖项管理。我最终创建了一个新的本地(和eclipse)工作区,同样的代码现在似乎工作得很好。
https://stackoverflow.com/questions/44791960
复制相似问题