如下匯總kettle 常見報錯及解決方法:
1、報錯 1.kettle 無法連接上數據庫
2、報錯 2.javax.mail.AuthenticationFailedException: 535 : authentication failed
3、報錯 3.Problem while sending message: com.sun.mail.smtp.SMTPSendFailedException: 554 DT:SPM 163 smtp12
報錯 1.kettle 無法連接上數據庫
原因:orai18n.jar 包
做了一個新的需求,這個需求是從本地跑數據,然后把結果數據同步到生產。在同步的過程中一直報如下錯誤。很奇怪的問題是,通過圖形化界面執行kettle沒有報錯,
如果通過kitchen.sh 調度就會報如下錯誤。這個問題遇到了兩次,有必要記錄一下。雖然不知道本質原因,但可以解決燃眉之急。
如下錯誤解決需要刪除jar包 :distrib/lib/orai18n.jar distrib/libext/JDBC/orai18n.jar ,如果遇到相同的問題,不妨一試。
ERROR 02-09 11:03:17,384 - Table output - An error occurred intialising this step: Error occured while trying to connect to the database Error connecting to database: (using class oracle.jdbc.driver.OracleDriver) oracle.i18n.text.converter.CharacterConverterOGS.getInstance(I)Loracle/i18n/text/converter/CharacterConverter; ERROR 02-09 11:03:17,385 - Table output - Error initializing step [Table output] ERROR 02-09 11:03:17,386 - Trans_Paic_Kpi_Import_tmp_table - Step [Table output.0] failed to initialize! INFO 02-09 11:03:17,386 - Table_In_ADS_KPI_PAIC - Finished reading query, closing connection. ERROR 02-09 11:03:17,389 - Table output - Unexpected error rolling back the database connection. ERROR 02-09 11:03:17,390 - Table output - org.pentaho.di.core.exception.KettleDatabaseException: Unable to get database metadata from this database connection at org.pentaho.di.job.Job.run (Job.java:313) at org.pentaho.di.job.Job.execute (Job.java:393) at org.pentaho.di.job.Job.execute (Job.java:667) at org.pentaho.di.job.Job.execute (Job.java:667) at org.pentaho.di.job.Job.execute (Job.java:667) at org.pentaho.di.job.Job.execute (Job.java:667) at org.pentaho.di.job.Job.execute (Job.java:528) at org.pentaho.di.job.entries.trans.JobEntryTrans.execute (JobEntryTrans.java:1034) at org.pentaho.di.trans.Trans.execute (Trans.java:397) at org.pentaho.di.trans.Trans.prepareExecution (Trans.java:799) at org.pentaho.di.trans.steps.tableoutput.TableOutput.dispose (TableOutput.java:708) at org.pentaho.di.core.database.Database.rollback (Database.java:715) at org.pentaho.di.core.database.Database.rollback (Database.java:726) at org.pentaho.di.core.database.Database.getDatabaseMetaData (Database.java:3167) at org.pentaho.di.core.database.Database.getDatabaseMetaData(Database.java:3171) at org.pentaho.di.core.database.Database.rollback(Database.java:726) at org.pentaho.di.core.database.Database.rollback(Database.java:715) at org.pentaho.di.trans.steps.tableoutput.TableOutput.dispose(TableOutput.java:708) at org.pentaho.di.trans.Trans.prepareExecution(Trans.java:799) at org.pentaho.di.trans.Trans.execute(Trans.java:397) at org.pentaho.di.job.entries.trans.JobEntryTrans.execute(JobEntryTrans.java:1034) at org.pentaho.di.job.Job.execute(Job.java:528) at org.pentaho.di.job.Job.execute(Job.java:667) at org.pentaho.di.job.Job.execute(Job.java:667) at org.pentaho.di.job.Job.execute(Job.java:667) at org.pentaho.di.job.Job.execute(Job.java:667) at org.pentaho.di.job.Job.execute(Job.java:393) at org.pentaho.di.job.Job.run(Job.java:313) Caused by: java.lang.NullPointerException at org.pentaho.di.core.database.Database.getDatabaseMetaData(Database.java:3167) ... 13 more
報錯 2.javax.mail.AuthenticationFailedException: 535 : authentication failed
原因:身份驗證失敗
解決辦法:檢查一下你網頁端郵箱設置中SMTP開啟的時候的開啟的授權碼,你重新關閉SMTP服務再重新開啟可以看到,在程序代碼中登錄的密碼其實就是那個你設置的授權碼,而且作為發件賬號SMTP服務必須打開!
SMTP服務打開方法(163郵箱示例):
1.登錄163郵箱,打開設置,可以看到POP3/SMTP/IMAP:
2.點擊去設置如下:
3.在kettle郵件設置里郵箱服務器設置如下:
一頓操作之后發現還4不行,繼續解決~~
報錯 3. Problem while sending message: com.sun.mail.smtp.SMTPSendFailedException: 554 DT:SPM 163 smtp12,EMCowABnpwdAfjFdoF9uBw--.42069S2 1563524673,please see http://mail.163.com/help/help_spam_16.htm?ip=116.228.131.82&hostid=smtp12&time=1563524673
解決:
1.根據指引幫助地址http://mail.163.com/help/help_spam_16.htm?ip=116.228.131.82&hostid=smtp12&time=1563524673
2.查看錯誤碼:554 DT:
原因:居然提示不能發送垃圾郵件 = =。。原來是kettle郵件設置消息內容未填寫,被識別為垃圾郵件了,更改如下:
還有發送/接收地址也要設置:
至此,kettle就可以發送郵件了,收到的示例如下: