[
https://issues.apache.org/jira/browse/NIFI-1454?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Joseph Witt reassigned NIFI-1454:
---------------------------------
Assignee: Joseph Witt
> Built RPMs Do Not Result in Working NiFi Installation
> -----------------------------------------------------
>
> Key: NIFI-1454
> URL: https://issues.apache.org/jira/browse/NIFI-1454
> Project: Apache NiFi
> Issue Type: Bug
> Components: Tools and Build
> Affects Versions: 0.4.1
> Environment: Tested on Amazon Linux with Java 7
> Reporter: James Wing
> Assignee: Joseph Witt
> Priority: Minor
> Labels: build
> Fix For: 0.5.0
>
>
> After building an RPM (mvn clean install -Prpm) and installing it (Amazon
> Linux, Java 1.7.0_91), I ran into the following error attempting to start
> NiFi :
> {noformat}
> # ./nifi.sh start
> Java home: /usr/lib/jvm/java
> NiFi home: /opt/nifi/nifi-0.4.1
> Bootstrap Config File: /opt/nifi/nifi-0.4.1/conf/bootstrap.conf
> Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/Logger
> at java.lang.Class.getDeclaredMethods0(Native Method)
> at java.lang.Class.privateGetDeclaredMethods(Class.java:2625)
> at java.lang.Class.getMethod0(Class.java:2866)
> at java.lang.Class.getMethod(Class.java:1676)
> at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
> at
> sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
> Caused by: java.lang.ClassNotFoundException: org.slf4j.Logger
> at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
> ... 6 more
> {noformat}
> But the .tar.gz assembly file from the same build works just fine. Comparing
> listings of the two file sets, it appears that the .tar.gz assembly has
> complete set of jar files in lib/bootstrap:
> * activation-1.1.jar
> * antlr-runtime-3.5.2.jar
> * commons-lang3-3.4.jar
> * logback-classic-1.1.3.jar
> * logback-core-1.1.3.jar
> * mail-1.4.7.jar
> * nifi-api-0.4.1.jar
> * nifi-bootstrap-0.4.1.jar
> * nifi-expression-language-0.4.1.jar
> * nifi-processor-utils-0.4.1.jar
> * nifi-security-utils-0.4.1.jar
> * nifi-utils-0.4.1.jar
> * slf4j-api-1.7.12.jar
> while the RPM install's lib/bootstrap has only one of these:
> * nifi-bootstrap-0.4.1.jar
> So I tried to troubleshoot why this is. It looks like the nifi-assembly POM
> is set up to use the same defined set of dependencies for both the
> maven-assembly-plugin and rpm-maven-plugin plugins. The lib folder plan for
> both plugins is something like:
> lib - all dependencies except nifi-bootstrap
> lib/bootstrap - include only nifi-bootstrap
> The problem appears to be a difference between how the two plugins handle
> transitive dependencies. The maven-assembly-plugin has configuration options
> allowing us to specify that the exclusions apply to the named plugins AND
> their transitive dependencies. The rpm-maven-plugin does not have a
> transitive configuration option, and does not appear to do the same thing by
> default. In fact, the RPM is built with nifi-bootstrap-0.4.1.jar in the
> lib/bootstrap folder, but all of its transitive dependencies (such as slf4j
> from the error) are in the lib folder. I believe the RPM installs LICENSE
> and NOTICE in the docs folder for the same reason.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)