【发布时间】:2014-06-12 05:57:29
【问题描述】:
这是我的主要课程:
public static void main(String arg[]) throws JsonProcessingException {
Address a = new Address("Jln Koli", "90121", "Vila", "Belgium");
Person p = new Person("Ali Bin Baba", new Date(), 90.0, 12, a);
List<Person> persons = new LinkedList<>();
persons.add(p);
persons.add(p);
ObjectMapper mapper = new ObjectMapper(new AvroFactory());
AvroSchemaGenerator generator = new AvroSchemaGenerator();
mapper.acceptJsonFormatVisitor(Person.class, generator);
AvroSchema shema = generator.getGeneratedSchema();
byte[] avro = mapper.writer(shema).writeValueAsBytes(p);
System.out.println(avro.toString());
}
这是我的 Person.java:
@XmlRootElement(name = "Person")
public class Person {
private String name;
private double height;
private int age;
private Date date;
@XmlElement(name = "Address")
private Address address;
//getters/setters
}
错误:
我的问题:
- 目前,我使用 Jackson 2 编写了用于编写 Avro 编码数据的代码。但我得到了这个错误。我不知道哪个部分出了问题。看起来,JSON、YAML、XML 等其他数据格式都可以正常工作。
【问题讨论】:
-
在你写的代码为
List<Person> persons = new LinkedList<>();更改为List<Person> persons = new LinkedList<Person>();我不确定,但你的代码是如何编译的? -
Mandar Pandit,它是 java 的菱形运算符。适用于 JDK1.7 。我的代码没有任何问题,只是 avro 部分而已。
-
我无法重现该错误。哪个版本的 Jackson/Avro 正在运行?可以试试2.4.0吗?
标签: java json jackson avro jackson-dataformat-avro