Module "com.inductiveautomation.perspective" threw exception during setup()

Hi,

I'm using Ingnition Maker as home, with docker (inductiveautomation/ignition:latest).

I'm using a composer file with the following extra parameters:

command: >
      -n OSCR
      -m 1024
      --
      wrapper.java.initmemory=512
      -Dignition.allowunsignedmodules=true

With the last update (8.1.25 (b2023021409)), the perspective module is reported as faulted:

java.lang.NoClassDefFoundError: org/eclipse/jetty/websocket/servlet/WebSocketServlet
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
	at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
	at java.base/java.net.URLClassLoader.defineClass(Unknown Source)
	at java.base/java.net.URLClassLoader$1.run(Unknown Source)
	at java.base/java.net.URLClassLoader$1.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.net.URLClassLoader.findClass(Unknown Source)
	at com.inductiveautomation.ignition.gateway.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:37)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	at com.inductiveautomation.ignition.gateway.modules.ModuleClassLoader.loadClass(ModuleClassLoader.java:85)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	at com.inductiveautomation.perspective.gateway.GatewayHook.setup(GatewayHook.java:170)
	at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl$LoadedModule.setup(ModuleManagerImpl.java:2412)
	at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl.setup(ModuleManagerImpl.java:397)
	at com.inductiveautomation.ignition.gateway.IgnitionGateway.startupInternal(IgnitionGateway.java:1207)
	at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl.startup(RedundancyManagerImpl.java:301)
	at com.inductiveautomation.ignition.gateway.IgnitionGateway.initRedundancy(IgnitionGateway.java:751)
	at com.inductiveautomation.ignition.gateway.IgnitionGateway.lambda$initInternal$0(IgnitionGateway.java:685)
	at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$ThrowableCatchingRunnable.run(BasicExecutionEngine.java:544)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.websocket.servlet.WebSocketServlet
	at java.base/java.net.URLClassLoader.findClass(Unknown Source)
	at com.inductiveautomation.ignition.gateway.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:37)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	at com.inductiveautomation.ignition.gateway.modules.ModuleClassLoader.loadClass(ModuleClassLoader.java:85)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	... 26 more

8.1.25 (b2023021409)
Azul Systems, Inc. 11.0.17

Rolling back to 8.1.24 does not seems to be straightforward:

ERROR: Version mismatch on existing volume (8.1.25) versus image (8.1.24), Ignition image version must be greater or equal to volume version.

What to do? :slight_smile:

Do you have the Perspective module itself contained in a volume?

It looks like your version of the Perspective module doesn't match with the container's Ignition version.

2 Likes

Yes, I had that! Thanks!

Time to update to a more flexible solution...

I would not map the modules directory. I would map individual third party modules into the modules directory.

2 Likes

Yes, that's what I did, I was not aware that I could just put its file in the directory to enable a module!