NoClassDefFoundError: org / apache / nifi / registry / VariableRegistry при выполнении тестовых примеров nifi - PullRequest
0 голосов
/ 03 мая 2019

Я новичок в apache nifi. Пару дней назад я застрял на этой проблеме (которая связана с отсутствием поведения собственного процессора nifi). Отладка не помогла мне хорошо. Таким образом, я решил исследовать фреймворк nifi (что я уже должен был сделать, но не делал :), как это было предложено в комментариях к этому вопросу.

Я получаю помощь по этим ссылкам: 1 , 2

То, что я пытался сделать, - это отправить файл единого потока на пользовательский процессор. Для этого я сохранил / сериализовал фактический файл потока, используя MergeContent (с версией FlowFile v3) и процессор PutFile, как предложено здесь . Теперь я пытаюсь перечитать этот файл с помощью кода в моем тесте с использованием процессора GetFile следующим образом:

import static org.junit.Assert.*;

import java.util.List;

import org.junit.Test;

import org.apache.nifi.util.TestRunners;
import org.apache.nifi.processors.standard.GetFile;
import org.apache.nifi.util.MockFlowFile;
import org.apache.nifi.util.TestRunner;

public class MyCustomProcessorTest {

    @Test
    public void testOnTrigger() {
        TestRunner runner = TestRunners.newTestRunner(new GetFile());
        runner.setProperty(GetFile.DIRECTORY, "C:\\Mahesh\\delete\\serialized-flow-files");
        runner.setProperty(GetFile.KEEP_SOURCE_FILE, "true");
        runner.run(1);

        List<MockFlowFile> results = runner.getFlowFilesForRelationship(GetFile.REL_SUCCESS);
        System.out.println("done");
    }
}

Это дает мне следующую ошибку:

enter image description here

Какую зависимость maven я должен включить, чтобы получить этот класс? Также подходит мой подход или есть более предпочтительный подход?

1 Ответ

1 голос
/ 03 мая 2019

Я бы перепроверил, если org.apache.nifi: nifi-api: находится в пути к классам.

При использовании maven я запускаю «mvn dependency: tree» для проверки.

...