0

我正在尝试以编程方式生成 avro java 类。我已经定义了 avro 模式文件。我正在使用此模式调用 SpecificSchemaCompiler 对象,然后调用 compileToDestination(src,dest) 方法来获取生成的类。但是我面临一个空指针异常。

我在现有工作区中遇到的上述问题。所以我在eclipse中新建了一个java项目,简单地尝试了上面的方法。它在那里工作,我得到了生成的java文件。

我正在使用以下架构。

{ "type": "record", "namespace": "gov.mrm", "name": "Customer", "doc": "Avro Schema for our Customer",
"fields": [ { "name": " first_name”,“type”:“string”,“doc”:“客户的名字”},{“name”:“last_name”,“type”:“string”,“doc”:“客户的姓氏” }, { "name": "age", "type": "int", "doc": "注册时的年龄" }, { "name": "height", "type": "float", "doc": "注册时身高cm" }, { "name":"weight", "type": "float", "doc": "注册时的重量,单位为 kg" }, { "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 中的异常:org.apache.avro.compiler.specific.SpecificCompiler.renderTemplate(SpecificCompiler.java:387) 的 java.lang.NullPointerException 在 org.apache.avro.compiler.specific.SpecificCompiler .compile(SpecificCompiler.java:456) at org.apache.avro.compiler.specific.SpecificCompiler.compileToDestination(SpecificCompiler.java:374) at main.avro.Test.main(Test.java:14) 原因:java。 org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:831) 处 org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:813) 处 org.apache.velocity.app 处的 lang.NullPointerException。 VelocityEngine.getTemplate(VelocityEngine.java:470) at org.apache.avro.compiler.specific.SpecificCompiler.renderTemplate(SpecificCompiler.java:385) ... 还有 3 个

4

0 回答 0