Pentaho

 View Only

 PDI-CE / External jar not found (?) when running in Carte

Heiko Markwart's profile image
Heiko Markwart posted 03-31-2022 07:18
Hi!

I have a transformation which runs fine in Spoon. It uses custom jar-files which are stored in libext. When running in Carte, the steps which use this lib throw an error:

2022/03/31 11:57:36 - TRANSACTION_MAPPER.0 - ERROR (version 9.0.0.0-423, build 9.0.0.0-423 from 2020-01-31 04.53.04 by buildguy) : Error initializing UserDefinedJavaClass:
2022/03/31 11:57:36 - TRANSACTION_MAPPER.0 - ERROR (version 9.0.0.0-423, build 9.0.0.0-423 from 2020-01-31 04.53.04 by buildguy) : org.pentaho.di.core.exception.KettleException:
2022/03/31 11:57:36 - TRANSACTION_MAPPER.0 - null

Can you guide me what to do?

best regards
Heiko
Andrew Cave's profile image
Andrew Cave
Hi Heiko.   You'll need to add the custom jars into the lib folder in the carte server then restart it.   I'm presuming that the carte server is on a different machine.

Regards
Andrew Cave
Heiko Markwart's profile image
Heiko Markwart
Hi Andrew,

thank you for your quick answer. 

My Carte instance runs on the same machine. I have created a separate application (C#/WPF) which acts as UI for the whole ETL solution which is used to migrate complete ERP-databases. It starts and monitors the PDI-Jobs.

Meanwhile I found the reason for the problem: The memory settings in Spoon.bat. When I use Spoon, I start a different file "SpoonWithDebug.bat" which allows the Eclipse IDE to debug the jar's at runtime. It allocates more RAM. Looking at Carte.bat, I saw that it is starting Spoon.bat in the background. After changing "-Xmx2048m" to ""-Xmx4096m" it is working.

Best regards
Heiko Markwart



Stephen Donovan's profile image
Stephen Donovan
@Eliezer Welch the command you are looking for is "jar"  these are just zip files with a special extension. 'jar' options mirror tar.
You will want to scan the folder and then open the listing of each jar file and scan for your class.

on Linux: ​ls *.jar | while read file; do jar tvf $file | grep -i vfsresolver; [[ $? == 0 ]] && echo $file; done​​