java项目中使用kettle的JNDI连接配置

       前面介绍过关于在kettle工具中怎么使用JNDI配置,更多的我们可能是需要在java项目中使用JNDI的配置,刚开始网上查了好多资料,都是说的在tomcat的配置文件里面配置JNDI连接信息,按照此,怎么配置都不对,后来仔细分析了下,是不适用的。

       为了解决这个问题,自己搭建了kettle的源码,我搭建的是kettle8.0.0的版本,注意的是,kettle8.0.0的源码文件结构和之前的版本已经不一样了,所以搭建的时候要注意,如果后面有时间,一定分享给大家。本篇博客说下java项目中怎么使用JNDI的配置。

       其实也是简单的,通过kettle的源码即可分析出来,其实代码也是kettle源码的。

       1.将JNDI配置文件放在一个指定的目录下(这个看自己),如我的就在项目根目录下simple-jndi/jdbc.properties:

         里面的配置信息同kettle工具里面的JNDI文件配置。

       

      2.除了kettle的几个jar之外,记得将kettle工具下的simple-jndi的jar包放进项目。

      

     3.调用kettle的环境初始化方法KettleEnvironment.init(true);看kettle源码即可知道,该方法的参数为true就表示为需要调用初始化jndi。

     4.在调用该方法之前,除了其它的参数之外,需要下面几行代码,这就是最重要的了:

          File   file = new File(path);//这个path就是jdbc.prtoperties文件的配置路径,指向上层文件夹路径即可,建议是绝对路径。
          path = file.getCanonicalPath();

          Const.JNDI_DIRECTORY = path;

          System.setProperty( "java.naming.factory.initial", "org.osjava.sj.SimpleContextFactory" );

          System.setProperty( "org.osjava.sj.root", path);

          System.setProperty( "org.osjava.sj.delimiter", "/" );

    5.调用其它方法即可。

    基于上面获取绝对路径的方法,可以参照我下面的,当然我感觉我的比较繁琐一点,这个根据自己实际项目来即可。

     String mClassPath = Thread.currentThread().getContextClassLoader().getResource("").toString();
     String tClassPath=mClassPath.substring(mClassPath.indexOf("/")+1, mClassPath.indexOf("ui"))+"simple-jndi";

     如果有其他意见和建议,大家可以一起交流,学无止境,一起进步。

 

转载于:https://www.cnblogs.com/liyunzhouts/p/8084722.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值