我正在尝试以编程方式生成avro Java类。我已经定义了avro模式文件。我正在使用此架构调用SpecificSchemaCompiler对象,然后调用compileToDestination(src,dest)方法来获取生成的类。但是我面临一个空指针异常。
我在现有工作区中遇到的上述问题。因此,我在Eclipse中创建了一个新的Java项目,并尝试了上述方法。在那里工作了,我正在获取生成的Java文件。
我正在使用以下架构。
{
“ type”:“记录”,
“ namespace”:“ gov.mrm”,
“ name”:“客户”,
“ doc”:“我们的客户的平均方案”,
“字段”:[
{“ name”:“ first_name”,“ type”:“ string”,“ doc”:“客户的名字”},
{“ name”:“ last_name”,“ type”:“ string”,“ doc”:“客户姓氏”},
{“ name”:“ age”,“ type”:“ int”,“ doc”:“注册时的年龄”},
{“名称”:“高度”,“类型”:“浮点数”,“文档”:“注册时的高度,以厘米为单位”},
{“名称”:“重量”,“类型”:“浮动”,“ doc”:“注册时的重量,以千克为单位”},
{“ name”:“ automated_email”,“ type”:“ boolean”,“ default”:true,“ doc”:“该字段指示用户是否注册了营销电子邮件”}
]
}
公共课程测试{
public static void main(String[] args) throws IOException
{
SpecificCompiler compiler = new SpecificCompiler(new Schema.Parser().parse(new File("src/main/avro/customer.avsc")));
compiler.compileToDestination(new File("src/main/avro"), new File("src/main/java"));
}
}
我正在追随异常。
线程“主”中的异常java.lang.RuntimeException:java.lang.NullPointerException 在org.apache.avro.compiler.specific.SpecificCompiler.renderTemplate(SpecificCompiler.java:387) 在org.apache.avro.compiler.specific.SpecificCompiler.compile(SpecificCompiler.java:456) 在org.apache.avro.compiler.specific.SpecificCompiler.compileToDestination(SpecificCompiler.java:374) 在main.avro.Test.main(Test.java:14) 造成原因:java.lang.NullPointerException 在org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:831) 在org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:813) 在org.apache.velocity.app.VelocityEngine.getTemplate(VelocityEngine.java:470) 在org.apache.avro.compiler.specific.SpecificCompiler.renderTemplate(SpecificCompiler.java:385) ...还有3个