mcdcorp / opentest

Open source test automation tool for web applications, mobile apps and APIs
https://getopentest.org
MIT License
447 stars 107 forks source link

OpenTest actor fails on ERROR: java.lang.NoClassDefFoundError #404 #588

Open abhikolkar opened 1 year ago

abhikolkar commented 1 year ago

OpenTest version number: 1.2.4

16.45.22 WARN: Failed to log extension JARs 16.45.22 TRACE: The main class is org.getopentest.Main 16.45.22 ERROR: java.lang.NoClassDefFoundError: jdk/nashorn/api/scripting/NashornScriptEngineFactory at org.getopentest.base.TestActor.createScriptEngine(TestActor.java:439) at org.getopentest.base.TestActor.(TestActor.java:339) at org.getopentest.base.TestActor.(TestActor.java:242) at org.getopentest.Main.main(Main.java:16) Caused by: java.lang.ClassNotFoundException: jdk.nashorn.api.scripting.NashornScriptEngineFactory at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 4 more

Steps to reproduce:

Install opentest (npm install opentest -g) Create opentest directory Run opentest quick-start cd to ~/opentest/server and start server cd to ~/opentest/actor1 and start actor Get error According to what little I could find on the web, the error supposedly involves node 14. I am running node v12.13.0. I am also running the latest jdk: java version "18.0.2.1" 2022-08-18 Java(TM) SE Runtime Environment (build 18.0.2.1+1-1) Java HotSpot(TM) 64-Bit Server VM (build 18.0.2.1+1-1, mixed mode, sharing

adrianth commented 1 year ago

OpenTest requires Java 8 to Java 11. The reason for the error is that, starting with Java 12, Oracle removed the Nashorn JavaScript engine from the Java JDK.