前面介绍过关于在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

java项目中使用kettle的JNDI连接配置相关推荐

  1. Redis学习笔记之二 :在Java项目中使用Redis

    成功配置redis之后,便来学习使用redis.首先了解下redis的数据类型. Redis的数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set( ...

  2. redis java驱动_Redis学习笔记之二 :在Java项目中使用Redis

    成功配置redis之后,便来学习使用redis.首先了解下redis的数据类型. Redis的数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set( ...

  3. jfinal 普通java工程_JFinal getModel方法如何在java项目中使用

    JFinal getModel方法如何在java项目中使用 发布时间:2020-11-17 15:11:27 来源:亿速云 阅读:94 作者:Leah 今天就跟大家聊聊有关JFinal getMode ...

  4. Java项目中利用钉钉机器人Webhook向钉钉群推送告警通知

    今天来讲一下 Java项目中利用钉钉机器人Webhook向钉钉群推送告警通知 一.配置钉钉群 1.新建一个接收通知的钉钉群 如下图,创建一个接收通知的钉钉群 选择项目群,点创建 输入群名称,右侧选择群 ...

  5. JAVA项目中的事务管理

    **JAVA项目中的事务管理 事务:保证一组对数据库操作动作的完整性(一致性, 安全性),也就是说:这一组动作要么都成功,要么都失败 1.JDBC对事务的支持 Java应用传统上使用JDBC(Java ...

  6. 实战派 | Java项目中玩转Redis6.0客户端缓存

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. 在前面的文章中,我们介绍了Redis6.0中的新特性客户端缓存client-side caching,通过tel ...

  7. java项目中rides的使用

    项目开发中一些特定的数据我们不一定要关系型数据库来存储,使用非关系型数据库反而更方便读取数据,效率高,这里介绍一下在java中rides的使用 1. 导入rides所需要的相关依赖jar包(在pom文 ...

  8. java项目中使用支付宝支付(手机端,web端)--菜鸟小回

    java项目中使用支付宝支付(手机端,web端) 文章目录 java项目中使用支付宝支付(手机端,web端) @[toc] 一.Spring boot项目代码 二.支付宝沙箱环境配置 1. 因为上面c ...

  9. Mac笔记本中是用Idea开发工具在Java项目中调用python脚本遇到的环境变量问题解决...

    问题描述: mac笔记本本身会自带几个python版本,比如python2.7版本,我没有改动mac默认的python版本,只是安装了python3.7版本. 使用Pycharm开发Python项目没 ...

  10. java聊天室小程序论文_在Java项目中利用continue与break制作一个聊天室小程序

    在Java项目中利用continue与break制作一个聊天室小程序 发布时间:2020-12-08 16:03:27 来源:亿速云 阅读:98 作者:Leah 在Java项目中利用continue与 ...

最新文章

  1. IE6Bug,外层container设置了overflow:auto,但是内层嵌套元素有position:relative的时候,显示错误。...
  2. 定义简单类-接收对象的变量同样是对对象的引用
  3. 如果用超级计算机渲染阿丽塔,【集群渲染】《阿凡达》幕后的渲染集群与渲染技术...
  4. python连接mongodb数据库_python连接mongodb操作数据示例(mongodb数据库配置类)
  5. 聊一聊顺序消息(RocketMQ顺序消息的实现机制)
  6. idea 搜索不到gsonformat_Idea中GsonFormat插件安装
  7. 怎样识别一个人是否可交
  8. 2015最新Linkedin人才趋势报告
  9. ajax jq 图片上传请求头_前端常见面试 请求篇
  10. harview .har文件解析
  11. 音乐倒数计数器(求解答,lcd相关知识点)
  12. 【随笔】一个可爱的圆函数模型
  13. 三角形求高公式计算机,直角三角形求高公式 直角三角形怎么求高
  14. Unity3dC#分布式游戏服务器ET框架介绍-组件式设计
  15. i5处理器做java够用吗,一般的游戏玩家用i5处理器就够了,这是真的吗?
  16. C语言编写 小企鹅表情包
  17. AI 玩王者荣耀狂上分!1 天训练强度达人类 440 年,网友:已卸载
  18. 机器学习—正则化方法—L1正则化、L2正则化
  19. 学习过程中所遇到的问题及解决方法总结
  20. 用python给excel文件的第三列添加重复递增数字

热门文章

  1. [bbk4965] 第102集 -第13章 - 表空间管理 00
  2. RUBY常用类库文档翻译以及使用示例
  3. 三分钟了解APS系统中生产计划排程模块的基本原理
  4. leetcode刷题日记-三个无重叠子数组的最大和
  5. 从零基础入门Tensorflow2.0 ----六、27 卷积神经网络
  6. selenium模拟点击的几种方法探讨
  7. ajax如何向action发送数据的
  8. linux下epoll网络编程模型,C++ - 网络编程模型 - Linux EPOLL
  9. 联通实时计算平台演进与实践
  10. 百度App网络深度优化系列《一》DNS优化