java 调用kettle job 传参_java调用kettle向job(任务)和transformation(转换)传递参数实例...
虽然网上文章有说java可以传递参数给kettle,不过只找到了传递参数给转换的文章,没有讲参数传递给job,kettle中如何使用java传递的参数。今天就以上问题,一并共享。
/**
* 本测试类慎用!!!!!!!
*
* @param args
*/
public static void main(String[] args) {
String datetime = "2014-12-19 23:20:45";
String[] params = {"707", datetime}; // 传递参数
String path = "F:\\job7.kjb";
//runTransfer(params, path);
runJob(params, path);
// runJob();
//jbResource();
}
/**
* 运行转换文件方法
* @param params 多个参数变量值
* @param ktrPath 转换文件的路径,后缀ktr
*/
public static void runTransfer(String[] params, String ktrPath) {
Trans trans = null;
try {
// // 初始化
// 转换元对象
KettleEnvironment.init();// 初始化
EnvUtil.environmentInit();
TransMeta transMeta = new TransMeta(ktrPath);
// 转换
trans = new Trans(transMeta);
// 执行转换
trans.execute(params);
// 等待转换执行结束
trans.waitUntilFinished();
// 抛出异常
if (trans.getErrors() > 0) {
throw new Exception(
"There are errors during transformation exception!(传输过程中发生异常)");
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* java 调用 kettle 的job
*
* @param jobname
* 如: String fName= "D:\\kettle\\informix_to_am_4.ktr";
*/
public static void runJob(String[] params, String jobPath) {
try {
KettleEnvironment.init();
// jobname 是Job脚本的路径及名称
JobMeta jobMeta = new JobMeta(jobPath, null);
Job job = new Job(null, jobMeta);
// 向Job 脚本传递参数,脚本中获取参数值:${参数名}
// job.setVariable(paraname, paravalue);
job.setVariable("id", params[0]);
job.setVariable("dt", params[1]);
job.start();
job.waitUntilFinished();
if (job.getErrors() > 0) {
throw new Exception(
"There are errors during job exception!(执行job发生异常)");
}
} catch (Exception e) {
e.printStackTrace();
}
}
以上是片段。实现了调用任务和转换的方法,我只给出了调用任务和转换文件的方法,连接数据库的在此略过。
下面就是如何使用java传递的参数了。
转换的网上有例子,转换工作台,打开输入,找到“获取系统信息”
进行变量定义,选择命令参数1。。。n即可
就可以引用我示例中的1,2参数了。
但是我们的迁移工作是要按顺序执行的,调用转换不够用,需要job来定义执行顺序,
比如上面的转换作为第一步,操作完进行其他步骤,那么在这个基础上,可以画一个job
这时候问题来了,我们要活得java的数据,同时这个job需要把参数传递给test2转换使用。
其实很简单,点开test2,切换到参数选型,将java定义的参数写进去,记住带{}
这样就大功搞成了。java已经能够顺利的将值传递给job,job可以顺利的将值传递给转换。
点击run this job 在variable中定义参数名称跟java传递的参数一致,可以写值进行测试。
注意事项:任务和转换要存成文件格式,任务中引用的转换也要是文件格式,
否则就都需要数据库支撑,数据库方法调用了。
原文:http://blog.csdn.net/dirful/article/details/42026545
java 调用kettle job 传参_java调用kettle向job(任务)和transformation(转换)传递参数实例...相关推荐
- 请求体的方式传参_Angularjs中$http以post请求通过消息体传递参数的实现方法
本文实例讲述了Angularjs中$http以post请求通过消息体传递参数的方法.分享给大家供大家参考,具体如下: Angularjs中,$http以post在消息体中传递参数,需要做以下修改,以确 ...
- java调用c传参_JAVA 调用C 语言程序,并且进行传参收结果等操作
import java.io.*; import java.lang.*; class test3{ public static void main(String []args) throws IOE ...
- java注解 自定义策略传参_Java注解教程及自定义注解
Java注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容.在这个教程当中,我们将学习Java的注解,如何定制注解,注解的使用以及如何通过反射解析注解. Java1.5引入了注解,当前许 ...
- java中位运算传参_java基础之位运算讲解于实战
一.基础知识点概括 在查看源码中,经常会看到很多这样的符号"&"."|"."-","^","<& ...
- java中注解动态传参_Java自定义注解源码+原理解释(使用Java自定义注解校验bean传入参数合法性)...
Java自定义注解源码+原理解释(使用Java自定义注解校验bean传入参数合法性)java 前言:因为前段时间忙于写接口,在接口中须要作不少的参数校验,本着简洁.高效的原则,便写了这个小工具供本身使 ...
- java调用python,传参json字符串,含中文传参
java调用python,传参json字符串 python脚本内容(test.py) # -*- coding: utf-8 -*-def main(input):return input java调 ...
- js调用java_Js调用Java方法并互相传参的简单实例
Js通过PhoneGap调用Java方法并互相传参的. 一.JAVA代码 写一个类,该类继承自Plugin并重写execute方法. public class PluginTest extends P ...
- js调java并传参_Js调用Java方法并互相传参的简单实例
Js通过PhoneGap调用Java方法并互相传参的. 一.JAVA代码 写一个类,该类继承自Plugin并重写execute方法. import org.json.JSONArray; import ...
- keras框架入门学习(一)——argparse传参模块调用
keras框架入门学习(一)--argparse传参模块调用 一.argparse模块简介 1.1 argparse的定义 1.2 argparse的优势 二.argparse模块使用 2.1 实现[ ...
最新文章
- 王坚十年前的坚持,才有了今天世界顶级大数据计算平台MaxCompute
- 【bzoj4698】[Sdoi2008] Sandy的卡片 后缀数组
- CodeFirst EF中导航属性的个人理解
- [leetcode]104.二叉树的最大深度
- Source Insight常用快捷键
- P6805-[CEOI2020]春季大扫除【贪心,树链剖分,线段树】
- 双胞胎一个上北大一个上清华,秘诀6个字!还有女生收到清华通知书说“考砸了”……...
- vs运行html没有注册类,解决win10运行com提示“错误代码 80040154-没有注册类”的方法...
- 堆区和方法区的小认识
- V270文件存储服务器,天堂2V270 服务端和客户端
- Hive建表语句批量导出导入
- Flutter灰色页面/灰色图片(滤镜)
- 自定义Unity调色板
- P5144 蜈蚣 (线性DP)
- Robcup2D足球学习记录【2020.01.30】
- AD软件——把原理图库 和 PCB元件库封装模型 关联起来
- C语言学习(三)运算符、表达式和语句
- python爬虫股票市盈率_量化交易的第一步,Python爬取股票数据
- 开源的多媒体播放器MPV
- 微信小程序引用阿里云图标的方法
热门文章
- 三维曲面图像绘制(光照控制)
- 0497计算机组成原理在线作业,0497《 综合实践活动课程设计》20秋西南大学在线作业答案...
- pythondocx更新目录_python根目录
- android搜索框布局文件,android搜索框列表布局,流程及主要步骤思维导图
- c++判断一个字符串里面有特殊符号_简单动态字符串(SDS)
- Apache Log4j2 远程代码执行高危漏洞 解决方案
- 电脑安装ubuntu linux操作系统
- Java基础教程【第九章:异常处理】
- stm32按键矩阵代码_STM32学习日志——电容触摸按键实验(20-06-27)
- etcd nginx 容器_Etcd+confd实现动态修改nginx文件