这个问题可能是因为在安装新的nar文件前没有先删除旧版本的nar文件,或者是因为processor类名没有被正确命名。为了解决这个问题,需要执行以下步骤:
确保删除了旧版本的nar文件,以避免出现在新版本nar文件中使用旧版本processor的可能性。
检查你的processor类名和nar文件中的类名是否相同。确保类名与processor属性中的类名相同,并且与nar文件的名称相同(最好在processor类和nar文件中添加版本号)。
重新运行NiFi,并确认新版本的nar文件是否被正确加载。
以下是一个示例processor类,展示如何在processor类和nar文件中正确命名类名:
@TriggerSerialy
@InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED)
@Tags({"example"})
@CapabilityDescription("An example Apache NiFi processor that receives JSON input and converts it to CSV.")
public class JsonToCsv extends AbstractProcessor {
@Override
public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException {
// Implementation of the processor
}
}
在这个示例中,processor类名为JsonToCsv。nar文件应该被命名为nifi-example-processors-n.n.nar(其中n.n.n是版本号),并且在nar文件中也需要有相同的processor类名:nifi.example.JsonToCsv。