Donald
What I see is that SLF4J is nowhere in your claspath, so by adding it to your
pom should solve the issue. Also don’t forget to add specific bindings (e.g.,
log4j) and its implementation.
Basically here is the example of what you need to have if you want to use Log4j:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.21</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
Cheers
Oleg
On Jun 13, 2016, at 7:22 AM, Dr. Donald Leonhard-MacDonald
<[email protected]<mailto:[email protected]>> wrote:
Hi All,
First let me say I’m really enjoying using Nifi, it’s a great project.
I have been creating some Processors and they are working very well. Now I want
to include processors that talk to RethinkDB.
When I include the dependency in Maven I get an java.lang.NoClassDefFoundError:
org/slf4j/LoggerFactory Exception.
I have been using the getLogger in the processors and that works really well.
I thought it might be a versioning issue(as suggested on website), so tried
different versions but with no success. Though I can
use the log4j when I restrict the scope of the jar to test.
So I created several small test frameworks that only imported Log4J and nothing
else to try and see what I was doing wrong.
As soon as I set the parent of my pom to nifi
Here is a very small example that creates the error
https://github.com/macd-ci0/nifilogging
mvn compile
mvn exec:java
A
[WARNING]
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at NifiLogging.processors.LoggingProcessor.App.main(App.java:12)
... 6 more
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 7 more
When I remove the parent element:
<parent>
<groupId>NifiExcel</groupId>
<artifactId>ExcelProcessors</artifactId>
<version>1.0</version>
</parent>
and change the target type from nar->jar in the pom.xml file in the -nar
directory It works well.
So the conflict is here.
I get the same conflict. When I tried to create a copy similar to the pom for
the nifi-kafka-bundle/nifi-kafka-processors which
also uses Log4J, I get the same problem.
I have also tried logback, etc..
Any ideas what I am doing wrong. What should I be doing differently?
I looked at the mailing list, FAQ and such and I cannot see what I am doing
incorrectly.
Spinning in circles and hoping for help. :-)
Donald