为了编译能通过,maven需要加入仓库地址以及一些必须要的包的依赖情况:

pentaho中央仓库:

在properties里面配置版本号:

6.0.0.0-353

pentaho1

Pentaho Repository1

http://repository.pentaho.org/artifactory/repo/

true

2.kettle一些核心的依赖,由于有些jar包下载不下来,所以exclution掉之后再去mvn仓库找合适的包:

pentaho-kettle

kettle-core

${kettle.version}

jug-lgpl

jug-lgpl

org.apache.commons

commons-vfs2

secondstring

secondstring

org.slf4j

slf4j-log4j12

xercesImpl

xerces

org.apache.xmlgraphics

batik-js

pentaho-kettle

kettle-engine

${kettle.version}

org.apache.commons

commons-vfs2

pentaho-library

libbase

${kettle.version}

pentaho-library

libformula

${kettle.version}

pentaho

metastore

${kettle.version}

pentaho

pentaho-mongodb-plugin

${kettle.version}

pentaho

pentaho-mongo-utils

6.0.0.0-351

org.apache.commons

commons-vfs2

2.1

net.sourceforge.jexcelapi

jxl

2.6.12

rhino

js

1.7R2

3.下载jar包时当遇到500m大小的jar时,暂停mvn手动下载然后移动到本地仓库

插件的路径:D:\dev\apache-maven-3.3.9\repository\pentaho\pentaho-big-data-plugin\6.0.0.0-353

4.java调本地ktr代码:

1 importjava.util.List;2

3 importorg.junit.Test;4 importorg.junit.runner.RunWith;5 importorg.pentaho.di.core.KettleEnvironment;6 importorg.pentaho.di.core.Result;7 importorg.pentaho.di.core.RowMetaAndData;8 importorg.pentaho.di.core.exception.KettleException;9 importorg.pentaho.di.job.Job;10 importorg.pentaho.di.job.JobMeta;11 importorg.pentaho.di.trans.Trans;12 importorg.pentaho.di.trans.TransMeta;13 importorg.slf4j.Logger;14 importorg.slf4j.LoggerFactory;15 importorg.springframework.test.context.ContextConfiguration;16 importorg.springframework.test.context.junit4.SpringJUnit4ClassRunner;17

18 importcn.shunlu.repository.BaseDataInitTest;19

20 @RunWith(SpringJUnit4ClassRunner.class)21 @ContextConfiguration(locations="/applicationContext.xml")22 public class KettleTest extendsBaseDataInitTest{23

24 private static Logger logger = LoggerFactory.getLogger(KettleTest.class);25

26 private static final String KETTLE_PLUGIN_BASE_FOLDER = "E:\\dev\\pentaho\\data-integration\\plugins\\";27 //private static final String KETTLE_PLUGIN_BASE_FOLDER = "C:\\dev\\pentaho6\\data-integration\\system\\karaf\\system\\pentaho";28 //private static final String KETTLE_PLUGIN_BASE_FOLDER = "C:\\dev\\pentaho6\\data-integration\\plugins";

29

30

31 /**

32 * 调转换33 */

34 @Test35 public voidtest() {36 logger.info("hi"+logger.getClass().getName());37 try

38 {39 //这里是设置我们pentaho的运行环境,实际上我们加入的maven依赖只是为了让代码编译通过,实际真正干活的还是pentaho自己40 //也可以自己建个maven的私服把pentaho里面的运行环境的jar丢上去,就能通过java调了

41 System.setProperty("KETTLE_PLUGIN_BASE_FOLDERS", KETTLE_PLUGIN_BASE_FOLDER);42 String transPath = "e:\\tmp\\2.ktr";43

44 KettleEnvironment.init();45

46 TransMeta transMeta = newTransMeta(transPath);47

48 Trans trans = newTrans(transMeta);49 System.out.println(trans);50 trans.setVariable("importOrExport", "出口");51 trans.setVariable("batchId", "57bebcfd816c0dffb72d6fa4");52 trans.setVariable("codeMap_type", "country");53 trans.execute(null);54

55 trans.waitUntilFinished();56

57 Result r =trans.getResult();58 List rowsResult =r.getRows();59

60 if (trans.getErrors() > 0)61 {62 throw newException(trans.getResult().getLogText());63 }64 }65 catch(Exception e)66 {67 e.printStackTrace();68 }69 }70

71 /**

72 *73 * @description 调job74 * @date 2016年9月6日75 *@author

76 */

77 @Test78 public void testJob() throwsException{79 logger.info("hi"+logger.getClass().getName());80 try{81 System.setProperty("KETTLE_PLUGIN_BASE_FOLDERS", KETTLE_PLUGIN_BASE_FOLDER);82

83 String jobPath = "e:\\tmp\\job1.kjb";84 KettleEnvironment.init();85

86 JobMeta jobMeta = new JobMeta(jobPath, null);87

88 Job job = new Job(null, jobMeta);89

90 job.setVariable("importOrExport", "出口");91 job.setVariable("batchId", "57bebcfd816c0dffb72d6fa4");92 job.setVariable("codeMap_type", "country");93

94 job.start();95 job.waitUntilFinished();96

97 if (job.getErrors() > 0) {98 throw newException(99 "There are errors during job exception!(执行job发生异常)");100 }101 } catch(KettleException e) {102 e.printStackTrace();103 }104 }105

106 }

View Code

注:加依赖的目的就是为了让编译能通过,最后运行的环境其实还是我们手动指定的plugins目录如图所示:

这里只是写了个testCase来调用我们本地.ktr和.kjb pentaho这边接收参数的话,我也是只做了个简单的job.

调转换就直接这么接收参数:

如果是调job接收命名参数需要在他的下一个步骤转换里面设置写命名参数就行了:

然后这个转换还是跟上一个转换一样的,而且参数也是那么接收的.${paramName}这样子.其实代码网上很多,但是整合maven那些依赖之间的关系特麻烦.

最近整合发现个问题,如果不将mongo-plugins和mongo-utils包放入plugins目录里面也无法成功调用,因此需要去到,

增加完之后的plugins目录:

java web集成kettle_Javaweb整合mongo和kettle6.0的环境配置相关推荐

  1. Java web小项目_个人主页(1)—— 云环境搭建与项目部署

    摘自:Java web小项目_个人主页(1)-- 云环境搭建与项目部署 作者:丶PURSUING 发布时间: 2021-03-26 23:59:39 网址:https://blog.csdn.net/ ...

  2. Java web集成支付宝电脑支付接口(沙箱环境)

    前言 这篇博客主要介绍如何在Java web项目中集成支付宝的电脑支付接口(会稍微介绍一下服务器集成APP支付接口).目前支付宝接口更新很快,在博主查找资料的时候,很多都是即时到账接口,APP支付则是 ...

  3. java web 开发之写在前面(0)

    java是sun公司(现在属于Oracle公司)推出的能够跨越多平台的.可以执行最高的一种面向对象的编程语言,也是目前最先进.特征最丰富.功能最强大的计算机语言.利用java可以编写桌面应用程序,we ...

  4. java web学习总结(二十一) -------------------模拟Servlet3.0使用注解的方式配置Servlet...

    一.Servlet的传统配置方式 在JavaWeb开发中, 每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示: 1 <servlet> 2 <servlet- ...

  5. win10系统下JAVA之JDK压缩包制作方法及安装教程(环境配置)

    win10系统下JAVA之JDK压缩包制作方法及安装教程 有时进行JAVA开发,我们可能会用到不同版本的JDK,每次切换不同版本时,总不能删除之前的,重新下载一个新版本,所以通过压缩包免安装方式进行多 ...

  6. java web主流框架整合开发 光盘_开发者突击:Java Web主流框架整合开发(第2版)(附CD光盘1张)...

    序言 一.了解软件架构 (一)基本概念 (二)软件架构的历史 (三)软件架构的目标 二.J2EE开发模型分析 (一)一层架构模式 (二)两层架构模式Model 1 (三)三层架构模式Model 2 ( ...

  7. java angular2集成_Angular2整合其他插件的方法

    前言:现在有很多朋友在接触Angular2的时候,总是不可避免的会使用一些其他的第3方的插件,而这些插件可能都是基于jQuery的,而且也没有对应的angular2的版本,这里我就来讲解一下,在这种情 ...

  8. java web 集成dom4j_[JavaWeb基础] 031.dom4j写入xml的方法

    上一篇我们讲述了dom4j读取xml的4种方法,甚是精彩,那么怎么样写入xml呢?我们直接看下源码实现. public static void main(String[] args) throws E ...

  9. java web集成ldap_关于Java LDAP登录集成

    最近项目需要集成LDAP的登录,所以简单研究了一下ldap的集成主要有以下几个步骤: 一.配置spring boot的LDAP配置文件 1.配置pom文件: org.springframework.b ...

最新文章

  1. 数据结构与算法(3-2)队列(顺序队列、循环队列与链队列)
  2. R语言把dataframe中的NA值替换为0
  3. Linux下查看Apache的版本号
  4. android连接Mysql数据库之JDBC方式
  5. STM32 的 JLink 调试时「Flash Timeout」和「Flash Download Failed」问题解决
  6. 职场好人缘的26个细节
  7. Access is denied
  8. TextScanner:旷视新作文字识别新突破,确保字符阅读顺序
  9. 数据结构上机实践第八周项目9-广义表算法库及应用
  10. 06. Explicitly disallow the use of compiler-generated functions you do not want
  11. 有关scm和check style的pom.xml文件
  12. delphi xe 10 程式外观
  13. html 播放vr视频,VR视频播放器(VR Player)使用教程
  14. MTK6577+Android启动----pre-loader
  15. 为什么SPSS的日期要以1582年10月14日为基准
  16. html正则半角,JS正则密码校验之:JS正则匹配半角英文符号
  17. Linux alias编写
  18. abpa 设置选择屏幕的元素不可编辑
  19. 利用pdfplumber处理滴滴电子发票
  20. 磷酸铁锂锂电池发展现状分析

热门文章

  1. 解决下载文件中文名称乱码问题
  2. 动态因子模型的理论和应用研究读书笔记(朱满洲)
  3. 【头歌实训】Java高级特性 - 多线程基础(1)使用线程,使用 Callable 和 Future 创建线程
  4. 石墨烯在各个领域的应用前景
  5. JavaScript js写九九乘法表(两种方法)
  6. 计算机毕业设计Python+uniapp社区便利店销售小程序(小程序+源码+LW)
  7. oracle建个触发器,oracle数据库如何创建触发器实例
  8. 【threejs效果:模型炸开】以钢铁侠obj模型为例
  9. 集成融云 SDK 怎么实现多端同步未读数
  10. 我的世界java我的世界启动侠_我的世界启动侠