Java NIFI:未找到适用于此属性的控制器服务类型
我正在为ApacheNIFI开发一个MILOOPCUA处理器和服务。 处理器和服务编译得很好,我可以用它们启动NiFi。但是,当尝试为我刚才添加的处理器配置服务时,它只是说“没有找到适用于此属性的控制器服务类型” 以下是我的POM: 处理器JARJava NIFI:未找到适用于此属性的控制器服务类型,java,maven,apache-nifi,Java,Maven,Apache Nifi,我正在为ApacheNIFI开发一个MILOOPCUA处理器和服务。 处理器和服务编译得很好,我可以用它们启动NiFi。但是,当尝试为我刚才添加的处理器配置服务时,它只是说“没有找到适用于此属性的控制器服务类型” 以下是我的POM: 处理器JAR <parent> <groupId>com.tcon</groupId> <artifactId>pubsub</artifactId> <version>
<parent>
<groupId>com.tcon</groupId>
<artifactId>pubsub</artifactId>
<version>0.1</version>
</parent>
<artifactId>nifi-pubsub-processors</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-utils</artifactId>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-mock</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>tcon</groupId>
<artifactId>nifi-miloservice-api</artifactId>
<version>0.1</version>
</dependency>
</dependencies>
<parent>
<groupId>com.tcon</groupId>
<artifactId>pubsub</artifactId>
<version>0.1</version>
</parent>
<artifactId>nifi-pubsub-nar</artifactId>
<version>0.1</version>
<packaging>nar</packaging>
<properties>
<maven.javadoc.skip>true</maven.javadoc.skip>
<source.skip>true</source.skip>
</properties>
<dependencies>
<dependency>
<groupId>com.tcon</groupId>
<artifactId>nifi-pubsub-processors</artifactId>
<version>0.1</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-services-api-nar</artifactId>
<version>1.2.0</version>
<type>nar</type>
</dependency>
</dependencies>
com.tcon
pubsub
0.1
nifi子处理器
罐子
org.apache.nifi
nifi api
org.apache.nifi
nifi-utils
org.apache.nifi
nifi模拟
测试
org.slf4j
slf4j简单
测试
朱尼特
朱尼特
测试
tcon
nifi miloservice api
0.1
处理器NAR
<parent>
<groupId>com.tcon</groupId>
<artifactId>pubsub</artifactId>
<version>0.1</version>
</parent>
<artifactId>nifi-pubsub-processors</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-utils</artifactId>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-mock</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>tcon</groupId>
<artifactId>nifi-miloservice-api</artifactId>
<version>0.1</version>
</dependency>
</dependencies>
<parent>
<groupId>com.tcon</groupId>
<artifactId>pubsub</artifactId>
<version>0.1</version>
</parent>
<artifactId>nifi-pubsub-nar</artifactId>
<version>0.1</version>
<packaging>nar</packaging>
<properties>
<maven.javadoc.skip>true</maven.javadoc.skip>
<source.skip>true</source.skip>
</properties>
<dependencies>
<dependency>
<groupId>com.tcon</groupId>
<artifactId>nifi-pubsub-processors</artifactId>
<version>0.1</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-services-api-nar</artifactId>
<version>1.2.0</version>
<type>nar</type>
</dependency>
</dependencies>
com.tcon
pubsub
0.1
耻骨下动脉
0.1
纳尔
真的
真的
com.tcon
nifi子处理器
0.1
org.apache.nifi
nifi标准服务api nar
1.2.0
纳尔
服务POM应该不重要,好吧。除了一些Milo依赖项之外,它们还没有被修改
如您所见,处理器JAR POM具有来自我的定制服务的定制服务API依赖,处理器NAR POM具有来自nifi的标准API依赖
文件说,这就是我需要做的一切,以“链接”我的处理器到我的服务
我缺少什么?您还需要通过在processor JAR项目的src/main/resources文件夹中包含一个文件,向ServiceLoader注册控制器服务。您需要在resources文件夹下有一个META-INF/services文件夹,其中有一个名为
org.apache.nifi.controller.ControllerService的文件,其中有一行包含实现ControllerService接口的类的完全限定名。结果表明这就是问题所在。但是我还需要控制器的服务api JAR依赖项和完整的服务JAR依赖项。我做错什么了吗?谢谢你的建议。