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