Brian,

Is your custom processor using the MongoDBClientService provided by
NiFI's standard services API? or does your NAR have a parent of
nifi-standard-services-api-nar to use other services?

Looking at where the Mongo JARs are from a build of master...

find work/nar/ -name *mongo-java*.jar
work/nar//extensions/nifi-standard-services-api-nar-1.6.0-SNAPSHOT.nar-unpacked/META-INF/bundled-dependencies/mongo-java-driver-3.2.2.jar
work/nar//extensions/nifi-mongodb-services-nar-1.6.0-SNAPSHOT.nar-unpacked/META-INF/bundled-dependencies/mongo-java-driver-3.2.2.jar
work/nar//extensions/nifi-mongodb-nar-1.6.0-SNAPSHOT.nar-unpacked/META-INF/bundled-dependencies/mongo-java-driver-3.2.2.jar

I think the issue is that if your NAR has
nifi-standard-services-api-nar as a parent NAR (which it probably does
to use SSLContext service, or any other standard service) then you are
getting mongo-java-driver-3.2.2 from MongoDBClientService since we
have parent first class loading.

Given this situation I think there are only two options... not having
nifi-standard-services-api-nar as a parent (which stops you from using
all standard services), or upgrading the version of mongo-java-driver
used by MongoDBClientService.

-Bryan


On Mon, Mar 26, 2018 at 3:16 PM, Brian Ghigiarelli <briang...@gmail.com> wrote:
> Hey all,
>
> Is there a means of troubleshooting a custom NAR that seems to be having
> runtime conflicts by picking up an older JAR that's provided by the NiFi
> standard bundle?
>
> In this particular case, I'm using some custom processors that are built
> against NiFi 1.4.0 and have a dependency on MongoDB 3.6.3. At runtime, I'm
> seeing the processor use classes from MongoDB 3.2.2 that's provided by
> NiFi. Both NiFi and the custom NAR compile successfully on their own, but
> using the custom NAR in NiFi causes NoSuchMethodError's due to a new method
> only available in MongoDB 3.4+.
>
> Thanks,
> Brian

Reply via email to