私は Apache Avro を学習しようとしています。Avro の簡単なチュートリアルから始めました。JSON スキーマを使用してデータをロードしようとしています。以下は私の簡単な例です-
public class AvroExample {
public static Schema SCHEMA; // writer's schema
public static Schema SCHEMA2; // reader's schema
private String name;
private int age;
private String[] mails;
private AvroExample boss;
static {
try {
SCHEMA = Schema.parse(AvroExample.class.getResourceAsStream("Employee.avsc"));
SCHEMA2 = Schema.parse(AvroExample.class.getResourceAsStream("Employee2.avsc"));
} catch (Exception e) {
System.out.println("Couldn't load a schema: " + e.getMessage());
}
}
// some more code
}
しかし、どういうわけか、この行は常に私に例外を与えます-
SCHEMA = Schema.parse(AvroExample.class.getResourceAsStream("Employee.avsc"));
なので-Couldn't load a schema: java.lang.NullPointerException
どういうわけか、ファイルを正しくロードできないか、ファイルを間違った方法でロードしていると思います。
これはファイルの内容です-
{
"type": "record",
"name": "Employee",
"fields": [
{"name": "name", "type": "string"},
{"name": "age", "type": "int"},
{"name": "emails", "type": {"type": "array", "items": "string"}},
{"name": "boss", "type": ["Employee","null"]}
]
}
以下は、これらの 2 つの avsc ファイルを配置した場所を示すワークスペースの写真です。
誰でもこれで私を助けることができますか?