Problem upgrading to clover engine 3.1 on Solaris machine

Hello,

I attempted to upgrade the CloverETL engine on a Solaris 4.1 machine today.
I was running previously with clover engine v 3.0.2 before with no issues.
Yet when I more over the 3.1 jars I get the following error when executing a graph:

Exception in thread “main” java.lang.NoClassDefFoundError: de/schlichtherle/io/FileInputStream
at org.jetel.plugin.Plugins.loadPluginDescription(Plugins.java:189)
at org.jetel.plugin.Plugins.init(Plugins.java:152)
at org.jetel.plugin.Plugins.init(Plugins.java:133)
at org.jetel.plugin.Plugins.init(Plugins.java:84)
at org.jetel.graph.runtime.EngineInitializer.initEngine(EngineInitializer.java:71)
at org.jetel.main.runGraph.main(runGraph.java:284)
Caused by: java.lang.ClassNotFoundException: de.schlichtherle.io.FileInputStream
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
… 6 more
Switching back to the 3.0.2 jars “fixes” the problem
Any ideas on what could be causing it?

Hello,
this error means, that reference to truezip library is missing in your project. It can have 2 reasons:

  • truezip-6.8.1.jar is missing in your CloverETL Desktop → check the installation folder (<cloveretl_designer_home_directory>/plugins/com.cloveretl.gui_3.1.2/lib/lib)

  • it exists conflict on the project class path → check if you don’t reference any particular CloverETL library (Project → Properties → Java Build Path → Libraries should contain CloverETL Engine and JRE System Library only)

There has been a change in referencing CloverETL libraries on the classpath in CloverETL 3.1 which might be related to the issue you are experiencing.

Until Clover 3.1, the .classpath file in your project contained references to particular CloverETL jar files.
Since CloverETL 3.1., the .classpath file should contain entry


<classpathentry kind="con" path="com.cloveretl.gui.CLOVER_ENGINE_CONTAINER"/>

instead of references to particular CloverETL libraries. If you do not add any custom jar files to classpath, the .classpath file should look as follows:


<?xml version="1.0" encoding="UTF-8"?>
<classpath xml>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="com.cloveretl.gui.CLOVER_ENGINE_CONTAINER"/>
<classpathentry kind="src" path="trans"/>
<classpathentry kind="output" path="trans"/>
</classpath>

During migration of the project from CloverETL 3.0.x to 3.1+, you should update the .classpath file accordingly. The newly created projects in CloverETL 3.1, you should not experience any errors.