Java NiFI自定义处理器类NotFoundException
我正在尝试加载自定义NiFi处理器,但无法让NiFi加载我的所有.nar依赖项,尽管尝试了各种pom.xml配置。我在SO上遇到了一些类似的问题,但没有找到这个问题的答案 我使用mvn clean install将处理器打包为.nar,然后将.nar复制到NIFI_HOME/lib。目前我得到了Java NiFI自定义处理器类NotFoundException,java,apache-nifi,Java,Apache Nifi,我正在尝试加载自定义NiFi处理器,但无法让NiFi加载我的所有.nar依赖项,尽管尝试了各种pom.xml配置。我在SO上遇到了一些类似的问题,但没有找到这个问题的答案 我使用mvn clean install将处理器打包为.nar,然后将.nar复制到NIFI_HOME/lib。目前我得到了java.lang.ClassNotFoundException:org.apache.http.conn.HttpClientConnectionManager。当前pom依赖项: <proper
java.lang.ClassNotFoundException:org.apache.http.conn.HttpClientConnectionManager
。当前pom依赖项:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<nifi.version>1.1.2</nifi.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-api</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-utils</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-services-api-nar</artifactId>
<version>${nifi.version}</version>
<type>nar</type>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-ssl-context-service</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-ssl-context-service-api</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-processor-utils</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.7</version>
</dependency>
</dependencies>
完整堆栈跟踪:
2017-03-13 11:11:23,146 ERROR [main] org.apache.nifi.NiFi Failure to launch NiFi due to java.util.ServiceConfigurationError: org.apache.nifi.processor.Processor: Provider com.alar.nifi.processors.GetIBright could not be instantiated
java.util.ServiceConfigurationError: org.apache.nifi.processor.Processor: Provider com.alar.nifi.processors.GetIBright could not be instantiated
at java.util.ServiceLoader.fail(ServiceLoader.java:232) ~[na:1.8.0_111]
at java.util.ServiceLoader.access$100(ServiceLoader.java:185) ~[na:1.8.0_111]
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384) ~[na:1.8.0_111]
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404) ~[na:1.8.0_111]
at java.util.ServiceLoader$1.next(ServiceLoader.java:480) ~[na:1.8.0_111]
at org.apache.nifi.nar.ExtensionManager.loadExtensions(ExtensionManager.java:116) ~[nifi-nar-utils-1.1.2.jar:1.1.2]
at org.apache.nifi.nar.ExtensionManager.discoverExtensions(ExtensionManager.java:97) ~[nifi-nar-utils-1.1.2.jar:1.1.2]
at org.apache.nifi.NiFi.<init>(NiFi.java:139) ~[nifi-runtime-1.1.2.jar:1.1.2]
at org.apache.nifi.NiFi.main(NiFi.java:262) ~[nifi-runtime-1.1.2.jar:1.1.2]
Caused by: java.lang.NoClassDefFoundError: org/apache/http/conn/HttpClientConnectionManager
at java.lang.Class.getDeclaredConstructors0(Native Method) ~[na:1.8.0_111]
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) ~[na:1.8.0_111]
at java.lang.Class.getConstructor0(Class.java:3075) ~[na:1.8.0_111]
at java.lang.Class.newInstance(Class.java:412) ~[na:1.8.0_111]
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380) ~[na:1.8.0_111]
... 6 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.apache.http.conn.HttpClientConnectionManager
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_111]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_111]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_111]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_111]
... 11 common frames omitted
2017-03-13 11:11:23146错误[main]org.apache.nifi.nifi由于java.util.ServiceConfigurationError未能启动nifi:org.apache.nifi.processor.processor:Provider com.alar.nifi.processors.GetIBright无法实例化
java.util.ServiceConfigurationError:org.apache.nifi.processor.processor:Provider com.alar.nifi.processors.GetIBright无法实例化
在java.util.ServiceLoader.fail(ServiceLoader.java:232)~[na:1.8.0_111]
在java.util.ServiceLoader.access$100(ServiceLoader.java:185)~[na:1.8.0_111]
在java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384)~[na:1.8.0_111]
在java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)~[na:1.8.0_111]
在java.util.ServiceLoader$1.next(ServiceLoader.java:480)~[na:1.8.0_111]
在org.apache.nifi.nar.ExtensionManager.loadExtensions(ExtensionManager.java:116)~[nifi-nar-utils-1.1.2.jar:1.1.2]
在org.apache.nifi.nar.ExtensionManager.discoverExtensions(ExtensionManager.java:97)~[nifi-nar-utils-1.1.2.jar:1.1.2]
在org.apache.nifi.nifi.(nifi.java:139)~[nifi-runtime-1.1.2.jar:1.1.2]
在org.apache.nifi.nifi.main(nifi.java:262)~[nifi-runtime-1.1.2.jar:1.1.2]
原因:java.lang.NoClassDefFoundError:org/apache/http/conn/HttpClientConnectionManager
在java.lang.Class.getDeclaredConstructors0(本机方法)~[na:1.8.0_111]
在java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)~[na:1.8.0_111]
在java.lang.Class.getConstructor0(Class.java:3075)~[na:1.8.0_111]
在java.lang.Class.newInstance(Class.java:412)~[na:1.8.0_111]
在java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380)~[na:1.8.0_111]
... 省略了6个公共框架
原因:java.lang.ClassNotFoundException:org.apache.http.conn.HttpClientConnectionManager
在java.net.URLClassLoader.findClass(URLClassLoader.java:381)~[na:1.8.0_111]
在java.lang.ClassLoader.loadClass(ClassLoader.java:424)~[na:1.8.0_111]
在sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)~[na:1.8.0_111]
在java.lang.ClassLoader.loadClass(ClassLoader.java:357)~[na:1.8.0_111]
... 省略了11个公共框架
通过将我的单个pom.xml修改为单独的构建(nar)和编译(jar)pom.xml文件,以及父pom.xml,解决了这个问题。我不知道为什么它以前不起作用,但我在下面包含了pom.xml文件
父pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>nifi-ibright-bundle</artifactId>
<packaging>pom</packaging>
<groupId>com.alar.nifi</groupId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<nifi.version>1.1.2</nifi.version>
</properties>
<modules>
<module>nifi-ibright-processor</module>
<module>nifi-ibright-nar</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alar.nifi</groupId>
<artifactId>nifi-ibright-processor</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-maven-plugin</artifactId>
<version>1.0.0-incubating</version>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.15</version>
</plugin>
</plugins>
</build>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.alar.nifi</groupId>
<artifactId>nifi-ibright-bundle</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.alar.nifi</groupId>
<artifactId>nifi-ibright-processor</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-api</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-utils</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-ssl-context-service-api</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-processor-utils</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.7</version>
</dependency>
</dependencies>
</project>
4.0.0
nifi-ibright束
聚甲醛
com.alar.nifi
1.0-快照
UTF-8
1.7
1.7
1.1.2
nifi ibright处理器
nifi ibright nar
com.alar.nifi
nifi ibright处理器
1.0-快照
org.apache.nifi
nifi nar maven插件
1.0.0-孵化
真的
org.apache.maven.plugins
maven surefire插件
2.15
nifi-ibright-nar/pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>nifi-ibright-bundle</artifactId>
<packaging>pom</packaging>
<groupId>com.alar.nifi</groupId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<nifi.version>1.1.2</nifi.version>
</properties>
<modules>
<module>nifi-ibright-processor</module>
<module>nifi-ibright-nar</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alar.nifi</groupId>
<artifactId>nifi-ibright-processor</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-maven-plugin</artifactId>
<version>1.0.0-incubating</version>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.15</version>
</plugin>
</plugins>
</build>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.alar.nifi</groupId>
<artifactId>nifi-ibright-bundle</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.alar.nifi</groupId>
<artifactId>nifi-ibright-processor</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-api</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-utils</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-ssl-context-service-api</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-processor-utils</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.7</version>
</dependency>
</dependencies>
</project>
com.alar.nifi
nifi-ibright束
1.0-快照
4.0.0
com.alar.nifi
nifi ibright处理器
1.0-快照
罐子
org.apache.nifi
nifi api
${nifi.version}
org.apache.nifi
nifi-utils
${nifi.version}
org.apache.nifi
nifi ssl上下文服务api
${nifi.version}
org.apache.nifi
nifi处理器utils
${nifi.version}
org.apache.httpcomponents
httpclient
4.4.1
org.apache.httpcomponents
httpcore
4.4.1
乔达时间
乔达时间
2.9.7
通过将我的单个pom.xml修改为单独的构建(nar)和编译(jar)pom.xml文件,以及父pom.xml,解决了这个问题。我不知道为什么它以前不起作用,但我在下面包含了pom.xml文件
父pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>nifi-ibright-bundle</artifactId>
<packaging>pom</packaging>
<groupId>com.alar.nifi</groupId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<nifi.version>1.1.2</nifi.version>
</properties>
<modules>
<module>nifi-ibright-processor</module>
<module>nifi-ibright-nar</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alar.nifi</groupId>
<artifactId>nifi-ibright-processor</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-maven-plugin</artifactId>
<version>1.0.0-incubating</version>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.15</version>
</plugin>
</plugins>
</build>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.alar.nifi</groupId>
<artifactId>nifi-ibright-bundle</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.alar.nifi</groupId>
<artifactId>nifi-ibright-processor</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-api</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-utils</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-ssl-context-service-api</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-processor-utils</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.7</version>
</dependency>
</dependencies>
</project>
4.0.0
nifi-ibright束
聚甲醛
com.alar.nifi
1.0-快照
UTF-8
1.7
1.7
1.1.2
nifi ibright处理器
nifi ibright nar
com.alar.nifi
nifi ibright处理器
1.0-快照
org.apache.nifi
nifi nar maven插件
1.0.0-孵化
真的
org.apache.maven.plugins
maven surefire插件
2.15
nifi-ibright-nar/pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>nifi-ibright-bundle</artifactId>
<packaging>pom</packaging>
<groupId>com.alar.nifi</groupId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<nifi.version>1.1.2</nifi.version>
</properties>
<modules>
<module>nifi-ibright-processor</module>
<module>nifi-ibright-nar</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alar.nifi</groupId>
<artifactId>nifi-ibright-processor</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-maven-plugin</artifactId>
<version>1.0.0-incubating</version>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.15</version>
</plugin>
</plugins>
</build>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.alar.nifi</groupId>
<artifactId>nifi-ibright-bundle</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.alar.nifi</groupId>
<artifactId>nifi-ibright-processor</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-api</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-utils</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-ssl-context-service-api</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-processor-utils</artifactId>
<version>${nifi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.7</version>
</dependency>
</dependencies>
</project>
com.alar.nifi
nifi-ibright束
1.0-快照
4.0.0
com.alar.nifi
nifi ibright处理器
1.0-快照
罐子
org.apache.nifi
nifi api
${nifi.version}
org.apache.nifi
nifi-utils
${nifi.version}
org.apache.nifi
nifi ssl上下文