This should be a simple matter of linking and loading. I mean, if I build/link using /nifi-api-0.7.1.jar/ then load on NiFi 0.7.1, there's no way that any symbol of NiFi origin, in this case, ComponentLog, should go absent. That symbol's use in my code was satisfied by importing from the NiFi API JAR and it should of course be satisfied at runtime.

What am I missing here? (It's probably staring me in the face, but I don't see it.)



On 12/06/2016 02:26 PM, Russell Bateman wrote:
I've had this problem with an old version for some time (I'm really concentrating more on NiFi 1.x now) and I have to fix it. I'm pulling my hair out a bit. We eliminated all use of ProcessorLogeven in this older code that we're trying to keep running on 0.7.1 and maintaining when we must.

In /nifi-api-0.7.1.jar/ there is certainly ComponentLog.class, but on starting NiFi, I keep getting what's below in /nifi-app.log/.

.
.
.
2016-12-06 14:11:57,228 ERROR [main] org.apache.nifi.NiFi Failure to launch NiFi due to java.util.ServiceConfigurationError: org.apache.nifi.processor.Processor: Provider com.imatsolutions.nifi.processor.ContentIdentifier could not be instantiated java.util.ServiceConfigurationError: org.apache.nifi.processor.Processor: Provider com.imatsolutions.nifi.processor.ContentIdentifier could not be instantiated at java.util.ServiceLoader.fail(ServiceLoader.java:232) ~[na:1.8.0_112] at java.util.ServiceLoader.access$100(ServiceLoader.java:185) ~[na:1.8.0_112] at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384) ~[na:1.8.0_112] at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404) ~[na:1.8.0_112] at java.util.ServiceLoader$1.next(ServiceLoader.java:480) ~[na:1.8.0_112] at org.apache.nifi.nar.ExtensionManager.loadExtensions(ExtensionManager.java:107) ~[nifi-nar-utils-0.7.1.jar:0.7.1] at org.apache.nifi.nar.ExtensionManager.discoverExtensions(ExtensionManager.java:88) ~[nifi-nar-utils-0.7.1.jar:0.7.1] at org.apache.nifi.NiFi.<init>(NiFi.java:120) ~[nifi-runtime-0.7.1.jar:0.7.1] at org.apache.nifi.NiFi.main(NiFi.java:227) ~[nifi-runtime-0.7.1.jar:0.7.1] *Caused by: java.lang.NoSuchMethodError: com.imatsolutions.nifi.processor.ContentIdentifier.getLogger()Lorg/apache/nifi/logging/ComponentLog;* * at com.imatsolutions.nifi.processor.ContentIdentifier.<init>(ContentIdentifier.java:48) ~[medical-filter-1.0.0.jar:na]* at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_112] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_112] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_112] at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_112]
    at java.lang.Class.newInstance(Class.java:442) ~[na:1.8.0_112]
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380) ~[na:1.8.0_112]
    ... 6 common frames omitted
2016-12-06 14:11:57,229 INFO [Thread-1] org.apache.nifi.NiFi Initiating shutdown of Jetty web server... 2016-12-06 14:11:57,230 INFO [Thread-1] org.apache.nifi.NiFi Jetty web server shutdown completed (nicely or otherwise).

To answer the obvious questions...

public class *ContentIdentifier* extends BaseIdentifierProcessor

In onTrigger(), there is this lone use:

      getLogger().error( message );

public abstract class BaseIdentifierProcessor extends AbstractProcessor

There is no use of any logger in this class. You already know AbstractProcessor.

Is there something I'm missing?

Reply via email to