Support Questions

Find answers, ask questions, and share your expertise
Announcements
Celebrating as our community reaches 100,000 members! Thank you!

NiFi - java.lang.NoSuchMethodError - Need Clear understanding

avatar
Contributor

Hi Team,

 ERROR [main] org.apache.nifi.NiFiFailure to launch NiFi due to java.lang.NoSuchMethodError: org.apache.nifi.processor.util.StandardValidators.createControllerServiceExistsValidator(Ljava/lang/Class;)Lorg/apache/nifi/components/Validator;java.lang.NoSuchMethodError: org.apache.nifi.processor.util.StandardValidators.createControllerServiceExistsValidator(Ljava/lang/Class;)Lorg/apache/nifi/components/Validator;

https://community.hortonworks.com/questions/97610/nifi-javalangnosuchmethoderror.html

https://stackoverflow.com/questions/43641251/nifi-java-lang-nosuchmethoderror

I am getting the same error when i deploying custom nars in single node but the same working in one node and it not working in other node

why we are getting this kind of error need complete understanding for this issue anything we need to change in config?

1 ACCEPTED SOLUTION

avatar
Master Guru

NAR #1 shows an old standard processors JAR being included:

nifi-standard-processors-0.0.1-incubating.jar

I believe that could be a problem, you don't want the processors from another NAR included in your NAR.

Basically this means the standard processors are included twice, once from the standard NAR and once from your custom NAR #1. When NiFi starts it scans the classpath and can sometimes find them first from standard NAR, or first from your NAR. If it finds them first from your NAR then it will load them from there which results in attempting to make API calls on them that are no longer compatible with 1.1.0.

View solution in original post

7 REPLIES 7

avatar
Contributor
@Bryan Bende

@Matt Clarke

Please share your inputs its hapenning in our prod environment but the same working in dev with same setup.

avatar
Master Guru

Can you provide a listing of the JARs included in your custom NAR?

ls -l work/nar/extensions/<YOUR-NAR>-unpacked/META-INF/bundled-dependencies/

And do this for each custom NAR.

avatar
Contributor

Hi Bryan,

Thanks in advance pasted the 4 nars jar detaisl and if i removed the first nar in one node nifi starting but in other node without removing itself starting. hope your answer will give some clarity on this issue

1st


 activation-1.1.jar
 activemq-client-5.12.1.jar
 avro-1.7.7.jar
 bcpkix-jdk15on-1.55.jar
 bcprov-jdk15on-1.55.jar
 bcprov-jdk16-1.46.jar
 commons-codec-1.10.jar
 commons-compress-1.11.jar
 commons-io-2.5.jar
 commons-jexl-2.1.1.jar
 commons-lang3-3.4.jar
 commons-logging-1.2.jar
 commons-net-3.3.jar
 geronimo-j2ee-management_1.1_spec-1.0.1.jar
 geronimo-jms_1.1_spec-1.1.1.jar
 hawtbuf-1.11.jar
 httpclient-4.4.1.jar
 httpcore-4.4.1.jar
 jackson-annotations-2.6.0.jar
 jackson-core-2.6.1.jar
 jackson-core-asl-1.9.13.jar
 jackson-databind-2.6.1.jar
 jackson-mapper-asl-1.9.13.jar
 javax.jms-api-2.0.1.jar
 jersey-client-1.19.jar
 jersey-core-1.19.jar
 jersey-server-1.19.jar
 joda-time-2.8.2.jar
 jsch-0.1.54.jar
 jsr311-api-1.1.1.jar
 jzlib-1.1.3.jar
 kite-data-core-1.0.0.jar
 kite-hadoop-compatibility-1.0.0.jar
 log4j-1.2.16.jar
 lzma-java-1.3.jar
 mail-1.4.7.jar
 mrapid-commom-util-1.0.0.jar
 mrapid-data-validation-processor-1.0.0.jar
 nifi-flowfile-packager-1.1.0.jar
 nifi-logging-utils-1.1.0.jar
 nifi-processor-utils-1.1.0.jar
 nifi-security-utils-1.1.0.jar
 nifi-socket-utils-1.1.0.jar
 nifi-standard-processors-0.0.1-incubating.jar
 nifi-utils-1.1.0.jar
 opencsv-2.3.jar
 paranamer-2.3.jar
 parquet-avro-1.4.1.jar
 parquet-column-1.4.1.jar
 parquet-common-1.4.1.jar
 parquet-encoding-1.4.1.jar
 parquet-format-2.0.0.jar
 parquet-generator-1.4.1.jar
 parquet-hadoop-1.4.1.jar
 parquet-jackson-1.4.1.jar
 Saxon-HE-9.6.0-5.jar
 snappy-java-1.0.5.jar
 xz-1.5.jar


2nd


 avro-1.7.7.jar
 bcpkix-jdk15on-1.55.jar
 bcprov-jdk15on-1.55.jar
 commons-codec-1.10.jar
 commons-compress-1.11.jar
 commons-csv-1.4.jar
 commons-io-2.5.jar
 commons-jexl-2.1.1.jar
 commons-lang3-3.4.jar
 commons-logging-1.1.1.jar
 jackson-annotations-2.6.0.jar
 jackson-core-2.6.1.jar
 jackson-core-asl-1.9.13.jar
 jackson-databind-2.6.1.jar
 jackson-mapper-asl-1.9.13.jar
 kite-data-core-1.0.0.jar
 kite-hadoop-compatibility-1.0.0.jar
 log4j-1.2.16.jar
 mrapid-avro-conversion-processor-0.0.2.jar
 mrapid-commom-util-0.0.2.jar
 nifi-processor-utils-1.1.0.jar
 nifi-security-utils-1.1.0.jar
 nifi-utils-1.1.0.jar
 opencsv-2.3.jar
 paranamer-2.3.jar
 parquet-avro-1.4.1.jar
 parquet-column-1.4.1.jar
 parquet-common-1.4.1.jar
 parquet-encoding-1.4.1.jar
 parquet-format-2.0.0.jar
 parquet-generator-1.4.1.jar
 parquet-hadoop-1.4.1.jar
 parquet-jackson-1.4.1.jar
 snappy-java-1.0.5.jar


3rd


 avro-1.7.7.jar
 bcpkix-jdk15on-1.55.jar
 bcprov-jdk15on-1.55.jar
 commons-codec-1.10.jar
 commons-compress-1.11.jar
 commons-io-2.5.jar
 commons-jexl-2.1.1.jar
 commons-lang3-3.4.jar
 commons-logging-1.1.1.jar
 jackson-annotations-2.6.0.jar
 jackson-core-2.6.1.jar
 jackson-core-asl-1.9.13.jar
 jackson-databind-2.6.1.jar
 jackson-mapper-asl-1.9.13.jar
 kite-data-core-1.0.0.jar
 kite-hadoop-compatibility-1.0.0.jar
 log4j-1.2.16.jar
 mrapid-commom-util-0.0.2.jar
 mrapid-file-validation-processor-0.0.2.jar
 nifi-processor-utils-1.1.0.jar
 nifi-security-utils-1.1.0.jar
 nifi-utils-1.1.0.jar
 opencsv-2.3.jar
 paranamer-2.3.jar
 parquet-avro-1.4.1.jar
 parquet-column-1.4.1.jar
 parquet-common-1.4.1.jar
 parquet-encoding-1.4.1.jar
 parquet-format-2.0.0.jar
 parquet-generator-1.4.1.jar
 parquet-hadoop-1.4.1.jar
 parquet-jackson-1.4.1.jar




4th


 avro-1.7.7.jar
 bcpkix-jdk15on-1.55.jar
 bcprov-jdk15on-1.55.jar
 commons-codec-1.10.jar
 commons-compress-1.11.jar
 commons-io-2.5.jar
 commons-jexl-2.1.1.jar
 commons-lang3-3.4.jar
 commons-logging-1.1.1.jar
 jackson-annotations-2.6.0.jar
 jackson-core-2.6.1.jar
 jackson-core-asl-1.9.13.jar
 jackson-databind-2.6.1.jar
 jackson-mapper-asl-1.9.13.jar
 kite-data-core-1.0.0.jar
 kite-hadoop-compatibility-1.0.0.jar
 log4j-1.2.16.jar
 mrapid-commom-util-0.0.4.jar
 mrapid-invalid-data-processor-0.0.4.jar
 nifi-processor-utils-1.1.0.jar
 nifi-security-utils-1.1.0.jar
 nifi-utils-1.1.0.jar
 opencsv-2.3.jar
 paranamer-2.3.jar
 parquet-avro-1.4.1.jar
 parquet-column-1.4.1.jar
 parquet-common-1.4.1.jar
 parquet-encoding-1.4.1.jar
 parquet-format-2.0.0.jar
 parquet-generator-1.4.1.jar
 parquet-hadoop-1.4.1.jar
 parquet-jackson-1.4.1.jar
 snappy-java-1.0.5.jar

avatar
Master Guru

NAR #1 shows an old standard processors JAR being included:

nifi-standard-processors-0.0.1-incubating.jar

I believe that could be a problem, you don't want the processors from another NAR included in your NAR.

Basically this means the standard processors are included twice, once from the standard NAR and once from your custom NAR #1. When NiFi starts it scans the classpath and can sometimes find them first from standard NAR, or first from your NAR. If it finds them first from your NAR then it will load them from there which results in attempting to make API calls on them that are no longer compatible with 1.1.0.

avatar
Contributor

okay but how its working in one node and not working in other node? i didnt understand that logic , can you explain?

avatar
Master Guru

Java's service loader is non-deterministic, one node might find the processors from standard NAR, another node might find them from your NAR. Even the node that is currently working might change behavior between restarts of NiFi.

avatar
Contributor
@Bryan Bende

Thank you so much it worked 🙂 you made my day...