Avro SpecificSchemaCompiler исключение нулевого указателя - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь генерировать классы avro java программно. Я определил файл схемы avro. Я вызываю объект SpecificSchemaCompiler с этой схемой, а затем вызываю метод compileToDestination (src, dest), чтобы получить сгенерированный класс. Однако я сталкиваюсь с исключением нулевого указателя.

С вышеупомянутой проблемой, с которой я столкнулся в существующей рабочей области. Поэтому я создал новый Java-проект в Eclipse и просто попробовал описанный выше подход. Там это сработало, и я получаю сгенерировать Java-файл.

Я использую следующую схему.

{ "тип": "запись", "namespace": "gov.mrm", "имя": "Клиент", «doc»: «Схема Avro для нашего Заказчика»,
"поля": [ {"name": "first_name", "type": "string", "doc": "Имя клиента"}, {"name": "last_name", "type": "string", "doc": "Last Name of Customer"}, {"name": "age", "type": "int", "doc": "Age на момент регистрации"}, {"name": "height", "type": "float", "doc": "Высота на момент регистрации в см"}, {"name": "weight", "type": "float", "doc": "Weight на момент регистрации в кг"}, {"name": "automatic_email", "type": "boolean", "default": true, "doc": "Поле, указывающее, зарегистрирован ли пользователь в маркетинговых электронных письмах"} ] }

Публичный класс Test {

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"));
}

}

Я получаю следующее исключение.

Исключение в потоке "main" 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) at 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

...