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

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

       为了解决这个问题,本身搭建了kettle的源码,我搭建的是kettle8.0.0的版本,注意的是,kettle8.0.0的源码文件结构和以前的版本已经不同了,因此搭建的时候要注意,若是后面有时间,必定分享给你们。本篇博客说下java项目中怎么使用JNDI的配置。tomcat

       其实也是简单的,经过kettle的源码便可分析出来,其实代码也是kettle源码的。工具

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

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

       

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

      

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

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

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

          Const.JNDI_DIRECTORY = path;it

          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";

     若是有其余意见和建议,你们能够一块儿交流,学无止境,一块儿进步。

相关文章
相关标签/搜索