Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java NoClassDefFoundError:org/apache/nifi/registry/VariableRegistry在运行nifi测试用例时出错_Java_Apache Nifi - Fatal编程技术网

Java NoClassDefFoundError:org/apache/nifi/registry/VariableRegistry在运行nifi测试用例时出错

Java NoClassDefFoundError:org/apache/nifi/registry/VariableRegistry在运行nifi测试用例时出错,java,apache-nifi,Java,Apache Nifi,我对apachenifi几乎是新手。几天前,我遇到了这个问题(这涉及到错过定制nifi处理器的行为)。调试对我没什么帮助。所以我决定探索nifi模拟框架(我应该已经在做了,但没有做:),正如在对这个问题的评论中所建议的那样 我从以下链接获得帮助: 我试图做的是将单个流文件发送到定制处理器。为此,我按照建议使用MergeContent(具有FlowFile v3版本)和PutFile处理器保存/序列化了实际的流文件。现在,我尝试使用GetFile processor通过测试中的代码重新读取此文件,

我对apachenifi几乎是新手。几天前,我遇到了这个问题(这涉及到错过定制nifi处理器的行为)。调试对我没什么帮助。所以我决定探索nifi模拟框架(我应该已经在做了,但没有做:),正如在对这个问题的评论中所建议的那样

我从以下链接获得帮助:

我试图做的是将单个流文件发送到定制处理器。为此,我按照建议使用MergeContent(具有FlowFile v3版本)和PutFile处理器保存/序列化了实际的流文件。现在,我尝试使用GetFile processor通过测试中的代码重新读取此文件,如下所示:

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");
    }
}
import static org.junit.Assert.*;
导入java.util.List;
导入org.junit.Test;
导入org.apache.nifi.util.TestRunners;
导入org.apache.nifi.processors.standard.GetFile;
导入org.apache.nifi.util.MockFlowFile;
导入org.apache.nifi.util.TestRunner;
公共类MyCustomProcessorTest{
@试验
public void testOnTrigger(){
TestRunner=TestRunners.newTestRunner(new GetFile());
setProperty(GetFile.DIRECTORY,“C:\\Mahesh\\delete\\serialized flow files”);
setProperty(GetFile.KEEP_SOURCE_FILE,“true”);
跑步者。跑步(1);
List results=runner.getFlowFilesForRelationship(GetFile.REL_SUCCESS);
系统输出打印项次(“完成”);
}
}
这给了我以下错误:


我应该包含哪个maven依赖项来获得这个类?我的方法还可以吗?或者还有更好的方法吗?

我会仔细检查org.apache.nifi:nifi api:是否在类路径中

如果使用maven,我会跑步
要检查的“mvn依赖项:树”

是的,我把它添加到了我的依赖项中。现在获取
java.lang.AssertionError:java.lang.NoSuchMethodError:org.apache.nifi.flowfile.flowfile.getLineageIdentifiers()Ljava/util/Set
我可以查看与nifi依赖项相关的pom文件吗。看起来在pom中的依赖项部分的开头有一个依赖项版本不匹配
org.apache.nifi nifi api org.apache.nifi nifi processor utils org.apache.nifi nifi mock test
,在结尾也有重复。只需执行
mvn dependency:tree
检查所使用的版本。@Mahesa999最好知道问题的实际原因是什么?问题是父pom依赖于0.1.0。正在酝酿的nifi api、nifi处理器UTIL、nifi UTIL、nifi安全UTIL、nifi模拟、,但是nifi标准处理器的版本是1.5.0。不知道为什么早期的开发人员坐在0.1.0上。孵化。。。