java调用kettle作业问题记录

发布时间 2023-06-05 17:02:13作者: 青棠

java调用kettle作业时,数据库连接失败,而使用kettle客户端执行作业则ok!

错误:

1 org.pentaho.di.core.exception.KettleDatabaseException:Erroroccured while trying to connect to the database
2 ...
3 Error connecting to database: (using class org.gjt.mm.mysql.Driver)
4 ...
5 java.lang.NullPointerException

 

 原因:一定是java项目引入mysql驱动版本和kettle版本存在在矛盾,故一定要找到对应mysql驱动版本,不要想着其他地方可能有错,不然就时白费功夫(本人花了2两天时间的证明)

 一、版本一致

kettle6.1+jdk1.7+?

kettle7.1+jdk1.8+mysql-connector-java5.1.49

二、其他错误

Driver class ‘org.gjt.mm.mysql.Driver’ could not be found, make sure the ‘MySQL’ driver (jar file) is installed.
org.gjt.mm.mysql.Driver

原因:缺少数据库驱动

解决方法:

1、通过cmd命令进入mysql安装目录下的bin目录内:可以使用d:命令直接进入d盘,然后再通过cd (bin目录的路径)

2、使用mysql -u 用户名 -p,输入密码即可进入mysql的欢迎界面,随机看到mysql的版本

3、去https://mvnrepository.com/找到对应版本驱动

 

 

Communications link failure:The last packet sent successfully to the server was 0 milliseconds ago

原因:Mysql服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该connection。这就是造成上面的异常的问题所在。

解决办法:启动mysql,然后输入mysql -u用户名 -p密码进入MySQL,再输入
show global variables like ‘wait_timeout’;

这时输入指令
1、set global wait_timeout=604800;
2、set global interactive_timeout=604800;