./pom.xml (Note that this issue occurred BEFORE I added the external JAR dependency, and I have that exact same org.json dependency in a bunch of other processors I have written without issue)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.apache.nifi</groupId> <artifactId>nifi-nar-bundles</artifactId> <version>1.3.0</version> </parent> <repositories> <repository> <id>project.local</id> <name>projects</name> <url>file:${project.basedir}/repo</url> </repository> </repositories> <groupId>com.jidmu</groupId> <artifactId>JSONCondenser</artifactId> <version>0.1</version> <packaging>pom</packaging> <modules> <module>nifi-JSONCondenser-processors</module> <module>nifi-JSONCondenser-nar</module> </modules> <dependencies> <dependency> <groupId>org.json</groupId> <artifactId>JSON</artifactId> <version>1.0</version> </dependency> </dependencies> </project> ./nifi-JSONCondenser-processors/pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.jidmu</groupId> <artifactId>JSONCondenser</artifactId> <version>0.1</version> </parent> <artifactId>nifi-JSONCondenser-processors</artifactId> <packaging>jar</packaging> <dependencies> <dependency> <groupId>org.apache.nifi</groupId> <artifactId>nifi-api</artifactId> </dependency> <dependency> <groupId>org.apache.nifi</groupId> <artifactId>nifi-utils</artifactId> </dependency> <dependency> <groupId>org.apache.nifi</groupId> <artifactId>nifi-mock</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> </dependencies> </project> ./nifi-JSONCondenser-nar/pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.jidmu</groupId> <artifactId>JSONCondenser</artifactId> <version>0.1</version> </parent> <artifactId>nifi-JSONCondenser-nar</artifactId> <version>0.1</version> <packaging>nar</packaging> <properties> <maven.javadoc.skip>true</maven.javadoc.skip> <source.skip>true</source.skip> </properties> <dependencies> <dependency> <groupId>com.jidmu</groupId> <artifactId>nifi-JSONCondenser-processors</artifactId> <version>0.1</version> </dependency> </dependencies> </project> > On 7 Nov 2017, at 4:39 am, Bryan Bende <[email protected]> wrote: > > It is most likely an issue with the Maven configuration in one of your > modules. > > Can you share your project, or the pom files for the processors, NAR, > and bundle? > > Thanks, > > Bryan > > > On Mon, Nov 6, 2017 at 12:20 PM, Phil H <[email protected]> wrote: >> Nifi version is 1.3.0, running on Java 1.8.0_131, running on a >> out-of-the-box CentOS (if that’s relevant) >> >>> On 7 Nov 2017, at 4:17 am, Phil H <[email protected]> wrote: >>> >>> I added the StandardValidators reference back in and the original error >>> reoccurs. The offending code (which compiles fine using the same JDK) is >>> totally standard stuff: >>> >>> public static final PropertyDescriptor ID_PATH = new PropertyDescriptor >>> .Builder().name("ID_PATH") >>> .displayName("JSON ID Path") >>> .description("The path to the JSON attribute that represents the >>> unique ID for the object") >>> .addValidator(StandardValidators.NON_BLANK_VALIDATOR) >>> .required(true) >>> .build(); >>> >>> >>> 2017-11-07 04:13:46,855 ERROR [main] org.apache.nifi.NiFi Failure to launch >>> NiFi due to java.util.ServiceConfigurationError: >>> org.apache.nifi.processor.Processor: Provider >>> com.jidmu.processors.JSONCondenser.JSONCondenser could not be instantiated >>> java.util.ServiceConfigurationError: org.apache.nifi.processor.Processor: >>> Provider com.jidmu.processors.JSONCondenser.JSONCondenser could not be >>> instantiated >>> at java.util.ServiceLoader.fail(ServiceLoader.java:232) >>> at java.util.ServiceLoader.access$100(ServiceLoader.java:185) >>> at >>> java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384) >>> at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404) >>> at java.util.ServiceLoader$1.next(ServiceLoader.java:480) >>> at >>> org.apache.nifi.nar.ExtensionManager.loadExtensions(ExtensionManager.java:138) >>> at >>> org.apache.nifi.nar.ExtensionManager.discoverExtensions(ExtensionManager.java:104) >>> at org.apache.nifi.web.server.JettyServer.start(JettyServer.java:699) >>> at org.apache.nifi.NiFi.<init>(NiFi.java:160) >>> at org.apache.nifi.NiFi.main(NiFi.java:267) >>> Caused by: java.lang.NoClassDefFoundError: >>> org/apache/nifi/processor/util/StandardValidators >>> at >>> com.jidmu.processors.JSONCondenser.JSONCondenser.<clinit>(JSONCondenser.java:58) >>> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >>> Method) >>> at >>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) >>> at >>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) >>> at java.lang.reflect.Constructor.newInstance(Constructor.java:423) >>> at java.lang.Class.newInstance(Class.java:442) >>> at >>> java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380) >>> ... 7 common frames omitted >>> Caused by: java.lang.ClassNotFoundException: >>> org.apache.nifi.processor.util.StandardValidators >>> at java.net.URLClassLoader.findClass(URLClassLoader.java:381) >>> at java.lang.ClassLoader.loadClass(ClassLoader.java:424) >>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) >>> at java.lang.ClassLoader.loadClass(ClassLoader.java:357) >>> ... 14 common frames omitted >>> >>> >>>> On 7 Nov 2017, at 4:02 am, Joe Witt <[email protected]> wrote: >>>> >>>> Can you share the code by chance for a review? Otherwise, you'll want >>>> to add a debugger at runtime and examine the context classloader as it >>>> goes through to see where it goes wonky. >>>> >>>> What version are you on? >>>> >>>> Thanks >>>> >>>> On Mon, Nov 6, 2017 at 11:58 AM, Phil H <[email protected]> wrote: >>>>> Hi guys, >>>>> >>>>> I have just (today) started having issues with a new processor I've >>>>> written where a seemingly random class (e.g.: StandardValidators) fails >>>>> to load when NiFi is initializing. I've created this processor like all >>>>> my others (using the maven archetype) and the VM I'm running it on has >>>>> not changed versions of any software. >>>>> >>>>> I removed any reference to StandardValidators, and the NAR then loaded >>>>> successfully. As I added some more functionality, I then had the same >>>>> ClassNotFoundException occur with a different random class. >>>>> >>>>> Because I have used the maven archetype, all my other processors >>>>> obviously use StandardValidators, so it's not like the class itself is >>>>> somehow corrupted. This feels like either a NiFi or maybe even JVM bug >>>>> (or other issue that is surfacing as this ClassNotFoundException). >>>>> >>>>> Pulling my hair out here - would love some help! >>>>> >>>>> Cheers, >>>>> Phil >>> >>
