解决问题记录3:java调用kettle的ktr文件报错mysql驱动问题

先说下简单的驱动问题,当仅是使用kettle工具测试就报错mysql驱动问题,那就是你的kettle文件下的lib中没有增加mysql驱动包,如下图(注意:增加驱动版本最好和你的mysql库的版本一致,免得有其它麻烦):

一、第一个问题及解决

接下来说我的问题,阶段如下:

1.本来使用6.1版本的kettle,领导要求更换9.1版本,给9.1kettle中lib下增加完驱动后,java项目调用kettle仍是报驱动文件找不到。

2.想着驱动文件找不到是不是因为我项目模块里没有增加驱动依赖,故又去查看,发现我的项目模块里确实没有,新增依赖调用还是报错org.gjt.mm.mysql.Driver找不到!(最后发现与此无关,最后我将依赖删除了。kettle的jar包中应该是自己封装了驱动,经测试我感觉它封装的是固定的某个老版驱动,每次都要走org.gjt.mm.mysql.Driver

3.因为“org.gjt.mm.mysql.Driver”是mysql是老版本mysql驱动包中的,我将kettle工具中的mysql驱动包降版本到5.x.xx后仍然出现了各种花里胡哨的包路径问题。最后没辙了,我想到是不是我的项目模块中的kettle的jar有问题,查看后发现使用的是5.4.0.1-130,而我调用的kettle工具lib下的版本已是9.1.0.0-324版本。

4.换jar包,9.1版本涉及的jar如下:

kettle-dbdialog-9.1.0.0-324.jar、kettle-engine-9.1.0.0-324.jar、kettle-core-9.1.0.0-324.jar、commons-vfs2-2.3.jar、pentaho-encryption-support-9.1.0.0-324.jar、metastore-9.1.0.0-324.jar、guava-17.0.jar

5.jar换完之后还需要在项目模块的resource文件夹下新增 kettle-password-encoder-plugins.xml文件,内容为:

<password-encoder-plugins>
  <password-encoder-plugin id="kettle">
     <description>kettle Password Encoder</description>
     <classname>org.pentaho.di.core.encryption.KettleTwoWayPasswordEncoder</classname>
  </password-encoder-plugin>
</password-encoder-plugins>

完成以上操作后,我用idea重新调用,程序可正常调用,到此解决的方式就是保持版本一致:项目中的kettlejar包和kettle工具中的jar包一致但是!到此并没有结束,接下来我开了我的第二个问题。

二、第二个问题及解决

第二个问题是这样产生的:在第一个问题中我说我将项目和kettle工具中的kettlejar包保持了一致,且用idea调用测试没有问题。我的项目是maven项目,后来打包发布到tomcat再次测试,又又出现了找不到驱动“org.gjt.mm.mysql.Driver”。

这次问题的解决没有那么曲折,上面我说了我测试感觉项目中的kettle包内是自我封装了mysql的驱动,而且是老版本的mysql驱动,所以无论kettle工具中我给的只要不是和它默认对得上的版本都会报错找不到驱动“org.gjt.mm.mysql.Driver”,故此情况有两种解决方式:

1.要么将项目中和kettle工具中的mysql驱动降到项目中kettlejar包所要求的版本,但这不现实,我项目版本不可能因为一个kettle调整。

2.如果1中不行,那只能采用第二种,自定义kettle工具数据库连接,直接上图吧,不啰嗦了:

以上是我的个人情况,写的杂乱,写的啰嗦,但只是用于个人记录,参考的同学仅参考就行。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格子衬衫_TJBB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值