Background
It runs normally in the Wins environment, but when the same converted file is uploaded to Linux, an error is reported.
1. Kettle client running interface
2. The cmd command line runs normally in the Wins environment
Run the code under the cmd command line:
d: cd D:\tools\pdi-ce-9.1.0.0-324\data-integration D:\tools\pdi-ce-9.1.0.0-324\data-integration>pan.bat /file:D:\tools\pdi-ce-9.1.0.0-324\data-integration\samples\jobs\insert_103_table_output. ktr /level:Basic > D:\tools\pdi-ce-9.1.0.0-324\data-integration\logs\insert_103_table_output_01.log
3. Running error under Linux environment
The error message is as follows:
2023/05/24 12:03:56 - source_query.0 - ERROR (version 9.1.0.0-324, build 9.1.0.0-324 from 2020-09-07 05.09.05 by buildguy) : Error initializing step [ source_query] 2023/05/24 12:03:56 - insert_data.0 - ERROR (version 9.1.0.0-324, build 9.1.0.0-324 from 2020-09-07 05.09.05 by buildguy) : Error initializing step [insert_data] 2023/05/24 12:03:56 - insert_data.0 - ERROR (version 9.1.0.0-324, build 9.1.0.0-324 from 2020-09-07 05.09.05 by buildguy) : java.lang.NoClassDefFoundError: Could not initialize class oracle.dms.instrument.Noun 2023/05/24 12:03:56 - insert_data.0 - at oracle.dms.instrument.NounFactory.getRoot(NounFactory.java:139) 2023/05/24 12:03:56 - insert_data.0 - at oracle.jdbc.driver.DMSFactory.getRoot(DMSFactory.java:97) 2023/05/24 12:03:56 - insert_data.0 - at oracle.jdbc.driver.DMSFactory.createNoun(DMSFactory.java:68) 2023/05/24 12:03:56 - insert_data.0 - at oracle.jdbc.driver.PhysicalConnection.createDMSSensors(PhysicalConnection.java:1769) 2023/05/24 12:03:56 - insert_data.0 - at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:873) 2023/05/24 12:03:56 - insert_data.0 - at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:525) 2023/05/24 12:03:56 - insert_data.0 - at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:76) 2023/05/24 12:03:56 - insert_data.0 - at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:829) 2023/05/24 12:03:56 - insert_data.0 - at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:633) 2023/05/24 12:03:56 - insert_data.0 - at java.sql.DriverManager.getConnection(DriverManager.java:664) 2023/05/24 12:03:56 - insert_data.0 - at java.sql.DriverManager.getConnection(DriverManager.java:208) 2023/05/24 12:03:56 - insert_data.0 - at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:598) 2023/05/24 12:03:56 - insert_data.0 - at org.pentaho.di.core.database.Database.normalConnect(Database.java:477) 2023/05/24 12:03:56 - insert_data.0 - at org.pentaho.di.core.database.Database.connect(Database.java:389) 2023/05/24 12:03:56 - insert_data.0 - at org.pentaho.di.core.database.Database.connect(Database.java:360) 2023/05/24 12:03:56 - insert_data.0 - at org.pentaho.di.trans.steps.tableoutput.TableOutput.init(TableOutput.java:533) 2023/05/24 12:03:56 - insert_data.0 - at org.pentaho.di.trans.step.StepInitThread.run(StepInitThread.java:69) 2023/05/24 12:03:56 - insert_data.0 - at java.lang.Thread.run(Thread.java:748) 2023/05/24 12:03:56 - source_query.0 - ERROR (version 9.1.0.0-324, build 9.1.0.0-324 from 2020-09-07 05.09.05 by buildguy) : java.lang.NoClassDefFoundError: oracle /core/ojdl/MessageType 2023/05/24 12:03:56 - source_query.0 - at oracle.dms.instrument.Level.initLevel(Level.java:226) 2023/05/24 12:03:56 - source_query.0 - at oracle.dms.instrument.LogLevel.initLogLevel(LogLevel.java:41) 2023/05/24 12:03:56 - source_query.0 - at oracle.dms.instrument.LogLevel.<clinit>(LogLevel.java:22) 2023/05/24 12:03:56 - source_query.0 - at oracle.dms.instrument.Noun.<clinit>(Noun.java:2176) 2023/05/24 12:03:56 - source_query.0 - at oracle.dms.instrument.NounFactory.getRoot(NounFactory.java:139) 2023/05/24 12:03:56 - source_query.0 - at oracle.jdbc.driver.DMSFactory.getRoot(DMSFactory.java:97) 2023/05/24 12:03:56 - source_query.0 - at oracle.jdbc.driver.DMSFactory.createNoun(DMSFactory.java:68) 2023/05/24 12:03:56 - source_query.0 - at oracle.jdbc.driver.PhysicalConnection.createDMSSensors(PhysicalConnection.java:1769) 2023/05/24 12:03:56 - source_query.0 - at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:873) 2023/05/24 12:03:56 - source_query.0 - at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:525) 2023/05/24 12:03:56 - source_query.0 - at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:76) 2023/05/24 12:03:56 - source_query.0 - at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:829) 2023/05/24 12:03:56 - source_query.0 - at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:633) 2023/05/24 12:03:56 - source_query.0 - at java.sql.DriverManager.getConnection(DriverManager.java:664) 2023/05/24 12:03:56 - source_query.0 - at java.sql.DriverManager.getConnection(DriverManager.java:208) 2023/05/24 12:03:56 - source_query.0 - at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:598) 2023/05/24 12:03:56 - source_query.0 - at org.pentaho.di.core.database.Database.normalConnect(Database.java:477) 2023/05/24 12:03:56 - source_query.0 - at org.pentaho.di.core.database.Database.connect(Database.java:389) 2023/05/24 12:03:56 - source_query.0 - at org.pentaho.di.core.database.Database.connect(Database.java:360) 2023/05/24 12:03:56 - source_query.0 - at org.pentaho.di.trans.steps.tableinput.TableInput.init(TableInput.java:343) 2023/05/24 12:03:56 - source_query.0 - at org.pentaho.di.trans.step.StepInitThread.run(StepInitThread.java:69) 2023/05/24 12:03:56 - source_query.0 - at java.lang.Thread.run(Thread.java:748) 2023/05/24 12:03:56 - source_query.0 - Caused by: java.lang.ClassNotFoundException: oracle.core.ojdl.MessageType 2023/05/24 12:03:56 - source_query.0 - at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 2023/05/24 12:03:56 - source_query.0 - at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 2023/05/24 12:03:56 - source_query.0 - at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 2023/05/24 12:03:56 - source_query.0 - ... 22 more 2023/05/24 12:03:56 - insert_103_table_output - ERROR (version 9.1.0.0-324, build 9.1.0.0-324 from 2020-09-07 05.09.05 by buildguy) : Step [source_query.0] failed to initialize ! 2023/05/24 12:03:56 - insert_103_table_output - ERROR (version 9.1.0.0-324, build 9.1.0.0-324 from 2020-09-07 05.09.05 by buildguy) : Step [insert_data.0] failed to initialize !
Run the code, similar to the WINS environment, with some differences:
[root@localhost data-integration]$ ./pan.sh -file=./scripts/insert_103_table_output.ktr -level=Basic >> ./logs/insert_103_table_output_8.log
Looking at the log information, it should be related to the Jar package. I thought that I also installed it by referring to the installation document. I decompressed all the JDBC jars and put them in the data-integration\lib folder under the kettle directory. I searched a lot on the Internet. , no solution found. Later, it was found that the Jar package might be in conflict, so I started to delete the newly added Jar packages under the data-integration\lib file one by one, and found that I deleted ojdbc8dms_g.jar and ojdbc8dms.jar When these two Jar packages are running normally.