Donald

Looking at your project I am a bit puzzled
First. The SLF4J is actually present as its being added as transient dependency 
from another project and the App program executes fine in IDE.

Indeed I do see an issue while executing it from command line. Has to be some 
maven voodoo. . . looking onto that
But here is the question
What are you trying to accomplish with tis example? What confuses me is that 
your processor is not really a Processor, just a POJO with a main method.

Cheers
Oleg

On Jun 13, 2016, at 10:32 AM, Bryan Bende 
<[email protected]<mailto:[email protected]>> wrote:

Hi Donald,

I know this does not directly address the conflict in dependencies, but I 
wanted to mention that it is not required to inherit from nifi-nar-bundles.

The Maven archetype does that by default, but you can certainly remove it, 
there are some instructions on how to do so here:
https://cwiki.apache.org/confluence/display/NIFI/Maven+Projects+for+Extensions#MavenProjectsforExtensions-Inheritance

Once you add the build section with the NAR plugin, then you can go back to 
<packaging>nar</packaging>.

-Bryan

On Mon, Jun 13, 2016 at 10:12 AM, Dr. Donald Leonhard-MacDonald 
<[email protected]<mailto:[email protected]>> wrote:
Hi Oleg,

Thank you for your quick response. Unfortunately it’s still not working.

I had tried these but had left them out by mistake when I’d tried mutation 
coding to get it all running. :-)

I have added them in now so it can be tested. I’m still getting the same error.

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


I think it’s a problem with a conflict in

<parent>
        <groupId>org.apache.nifi</groupId>
        <artifactId>nifi-nar-bundles</artifactId>
        <version>0.6.1</version>
        <relativePath></relativePath>
</parent>

When I remove it and change

    <artifactId>nifi-LoggingProcessor-nar</artifactId>
    <version>1.0</version>
    <packaging>nar</packaging>

To

    <artifactId>nifi-LoggingProcessor-nar</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>

it works.

Any ideas?

Cheers,

Donald

On 13 Jun 2016, at 14:01, Oleg Zhurakousky 
<[email protected]<mailto:[email protected]>> wrote:

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




Reply via email to