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
java项目中使用kettle的JNDI连接配置相关推荐
- Redis学习笔记之二 :在Java项目中使用Redis
成功配置redis之后,便来学习使用redis.首先了解下redis的数据类型. Redis的数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set( ...
- redis java驱动_Redis学习笔记之二 :在Java项目中使用Redis
成功配置redis之后,便来学习使用redis.首先了解下redis的数据类型. Redis的数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set( ...
- jfinal 普通java工程_JFinal getModel方法如何在java项目中使用
JFinal getModel方法如何在java项目中使用 发布时间:2020-11-17 15:11:27 来源:亿速云 阅读:94 作者:Leah 今天就跟大家聊聊有关JFinal getMode ...
- Java项目中利用钉钉机器人Webhook向钉钉群推送告警通知
今天来讲一下 Java项目中利用钉钉机器人Webhook向钉钉群推送告警通知 一.配置钉钉群 1.新建一个接收通知的钉钉群 如下图,创建一个接收通知的钉钉群 选择项目群,点创建 输入群名称,右侧选择群 ...
- JAVA项目中的事务管理
**JAVA项目中的事务管理 事务:保证一组对数据库操作动作的完整性(一致性, 安全性),也就是说:这一组动作要么都成功,要么都失败 1.JDBC对事务的支持 Java应用传统上使用JDBC(Java ...
- 实战派 | Java项目中玩转Redis6.0客户端缓存
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. 在前面的文章中,我们介绍了Redis6.0中的新特性客户端缓存client-side caching,通过tel ...
- java项目中rides的使用
项目开发中一些特定的数据我们不一定要关系型数据库来存储,使用非关系型数据库反而更方便读取数据,效率高,这里介绍一下在java中rides的使用 1. 导入rides所需要的相关依赖jar包(在pom文 ...
- java项目中使用支付宝支付(手机端,web端)--菜鸟小回
java项目中使用支付宝支付(手机端,web端) 文章目录 java项目中使用支付宝支付(手机端,web端) @[toc] 一.Spring boot项目代码 二.支付宝沙箱环境配置 1. 因为上面c ...
- Mac笔记本中是用Idea开发工具在Java项目中调用python脚本遇到的环境变量问题解决...
问题描述: mac笔记本本身会自带几个python版本,比如python2.7版本,我没有改动mac默认的python版本,只是安装了python3.7版本. 使用Pycharm开发Python项目没 ...
- java聊天室小程序论文_在Java项目中利用continue与break制作一个聊天室小程序
在Java项目中利用continue与break制作一个聊天室小程序 发布时间:2020-12-08 16:03:27 来源:亿速云 阅读:98 作者:Leah 在Java项目中利用continue与 ...
最新文章
- IE6Bug,外层container设置了overflow:auto,但是内层嵌套元素有position:relative的时候,显示错误。...
- 定义简单类-接收对象的变量同样是对对象的引用
- 如果用超级计算机渲染阿丽塔,【集群渲染】《阿凡达》幕后的渲染集群与渲染技术...
- python连接mongodb数据库_python连接mongodb操作数据示例(mongodb数据库配置类)
- 聊一聊顺序消息(RocketMQ顺序消息的实现机制)
- idea 搜索不到gsonformat_Idea中GsonFormat插件安装
- 怎样识别一个人是否可交
- 2015最新Linkedin人才趋势报告
- ajax jq 图片上传请求头_前端常见面试 请求篇
- harview .har文件解析
- 音乐倒数计数器(求解答,lcd相关知识点)
- 【随笔】一个可爱的圆函数模型
- 三角形求高公式计算机,直角三角形求高公式 直角三角形怎么求高
- Unity3dC#分布式游戏服务器ET框架介绍-组件式设计
- i5处理器做java够用吗,一般的游戏玩家用i5处理器就够了,这是真的吗?
- C语言编写 小企鹅表情包
- AI 玩王者荣耀狂上分!1 天训练强度达人类 440 年,网友:已卸载
- 机器学习—正则化方法—L1正则化、L2正则化
- 学习过程中所遇到的问题及解决方法总结
- 用python给excel文件的第三列添加重复递增数字