How to resolve java.lang.NoClassDefFoundError: net/minidev/json/writer/JsonReaderI error on TIBCO BusinessEvents engine startup

How to resolve java.lang.NoClassDefFoundError: net/minidev/json/writer/JsonReaderI error on TIBCO BusinessEvents engine startup

book

Article ID: KB0071788

calendar_today

Updated On:

Products Versions
TIBCO BusinessEvents Enterprise Edition 6.2.1

Description

The following error was thrown when using internal classes from a third party "json-path-2.7.jar" referenced in BE build path and the class was either moved or removed from the referenced jar file.
java.lang.NoClassDefFoundError: net/minidev/json/writer/JsonReaderI
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:575)
at com.tibco.cep.runtime.service.loader.ClassManager.loadClass(ClassManager.java:142)
at com.tibco.cep.runtime.service.loader.BEClassLoader.registerClasses(BEClassLoader.java:520)
at com.tibco.cep.runtime.service.loader.BEClassLoader.update(BEClassLoader.java:341)
at com.tibco.cep.runtime.service.loader.BEClassLoader.lockAndUpdate(BEClassLoader.java:302)
at com.tibco.cep.runtime.service.loader.BEClassLoader.lockAndUpdate(BEClassLoader.java:297)
at com.tibco.cep.runtime.session.impl.RuleServiceProviderImpl.registerClasses(RuleServiceProviderImpl.java:585)
at com.tibco.cep.runtime.session.impl.RuleServiceProviderImpl.initProject(RuleServiceProviderImpl.java:1105)
at com.tibco.cep.container.standalone.BEMain.jumpStart(SourceFile:160)
at com.tibco.cep.container.standalone.BEMain.main(SourceFile:71)
Caused by: java.lang.ClassNotFoundException: net.minidev.json.writer.JsonReaderI
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
Where java.lang.NoClassDefFoundError: net/minidev/json/writer/JsonReaderI was previously bundled in json-path-2.7. jar, which is not currently bundled in same jars.
 

Issue/Introduction

When using internal classes from a jar installed in maven repository, after a BE upgrade, the error "java.lang.NoClassDefFoundError: class" could be thrown as there is no guarantee those classes will remain available in the current version bundled jars.

Environment

All Supported Platforms

Resolution

To resolve the error we can download following jars and update third party jar references to include these jars.
- asm-1.0.2.jar
- accessors-smart-2.4.8.jar
- json-smart-2.4.8.jar
- jakaarta.json.bind-api-3.0.0.jar
- jettison-1.5.0.jar
- json-path-matcher-1.1.jar

Please refer to screenshot attached to the article for reference.