Javaweb整合mongo和kettle6.0的环境配置
为了编译能通过,maven需要加入仓库地址以及一些必须要的包的依赖情况:
- pentaho中央仓库:
在properties里面配置版本号:
<kettle.version>6.0.0.0-353</kettle.version>
<repository>
<id>pentaho1</id>
<name>Pentaho Repository1</name>
<url>http://repository.pentaho.org/artifactory/repo/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
2.kettle一些核心的依赖,由于有些jar包下载不下来,所以exclution掉之后再去mvn仓库找合适的包:
<!-- kettle begin -->
<dependency>
<groupId>pentaho-kettle</groupId>
<artifactId>kettle-core</artifactId>
<version>${kettle.version}</version>
<exclusions>
<exclusion>
<groupId>jug-lgpl</groupId>
<artifactId>jug-lgpl</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.commons</groupId>
<artifactId>commons-vfs2</artifactId>
</exclusion>
<exclusion>
<groupId>secondstring</groupId>
<artifactId>secondstring</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<artifactId>xercesImpl</artifactId>
<groupId>xerces</groupId>
</exclusion>
<exclusion>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-js</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>pentaho-kettle</groupId>
<artifactId>kettle-engine</artifactId>
<version>${kettle.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.commons</groupId>
<artifactId>commons-vfs2</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>pentaho-library</groupId>
<artifactId>libbase</artifactId>
<version>${kettle.version}</version>
</dependency>
<dependency>
<groupId>pentaho-library</groupId>
<artifactId>libformula</artifactId>
<version>${kettle.version}</version>
</dependency>
<dependency>
<groupId>pentaho</groupId>
<artifactId>metastore</artifactId>
<version>${kettle.version}</version>
</dependency>
<dependency>
<groupId>pentaho</groupId>
<artifactId>pentaho-mongodb-plugin</artifactId>
<version>${kettle.version}</version>
</dependency>
<dependency>
<groupId>pentaho</groupId>
<artifactId>pentaho-mongo-utils</artifactId>
<version>6.0.0.0-351</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-vfs2</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.12</version>
</dependency>
<dependency>
<groupId>rhino</groupId>
<artifactId>js</artifactId>
<version>1.7R2</version>
</dependency>
<!-- kettle end -->
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代码:
import java.util.List; import org.junit.Test;
import org.junit.runner.RunWith;
import org.pentaho.di.core.KettleEnvironment;
import org.pentaho.di.core.Result;
import org.pentaho.di.core.RowMetaAndData;
import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.job.Job;
import org.pentaho.di.job.JobMeta;
import org.pentaho.di.trans.Trans;
import org.pentaho.di.trans.TransMeta;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import cn.shunlu.repository.BaseDataInitTest; @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="/applicationContext.xml")
public class KettleTest extends BaseDataInitTest{ private static Logger logger = LoggerFactory.getLogger(KettleTest.class); private static final String KETTLE_PLUGIN_BASE_FOLDER = "E:\\dev\\pentaho\\data-integration\\plugins\\";
// private static final String KETTLE_PLUGIN_BASE_FOLDER = "C:\\dev\\pentaho6\\data-integration\\system\\karaf\\system\\pentaho";
// private static final String KETTLE_PLUGIN_BASE_FOLDER = "C:\\dev\\pentaho6\\data-integration\\plugins"; /**
* 调转换
*/
@Test
public void test() {
logger.info("hi"+ logger.getClass().getName());
try
{
//这里是设置我们pentaho的运行环境,实际上我们加入的maven依赖只是为了让代码编译通过,实际真正干活的还是pentaho自己
//也可以自己建个maven的私服把pentaho里面的运行环境的jar丢上去,就能通过java调了
System.setProperty("KETTLE_PLUGIN_BASE_FOLDERS", KETTLE_PLUGIN_BASE_FOLDER);
String transPath = "e:\\tmp\\2.ktr"; KettleEnvironment.init(); TransMeta transMeta = new TransMeta(transPath); Trans trans = new Trans(transMeta);
System.out.println(trans);
trans.setVariable("importOrExport", "出口");
trans.setVariable("batchId", "57bebcfd816c0dffb72d6fa4");
trans.setVariable("codeMap_type", "country");
trans.execute(null); trans.waitUntilFinished(); Result r = trans.getResult();
List<RowMetaAndData> rowsResult = r.getRows(); if (trans.getErrors() > 0)
{
throw new Exception(trans.getResult().getLogText());
}
}
catch (Exception e)
{
e.printStackTrace();
}
} /**
*
* @description 调job
* @date 2016年9月6日
* @author
*/
@Test
public void testJob() throws Exception{
logger.info("hi"+ logger.getClass().getName());
try {
System.setProperty("KETTLE_PLUGIN_BASE_FOLDERS", KETTLE_PLUGIN_BASE_FOLDER); String jobPath = "e:\\tmp\\job1.kjb";
KettleEnvironment.init(); JobMeta jobMeta = new JobMeta(jobPath, null); Job job = new Job(null, jobMeta); job.setVariable("importOrExport", "出口");
job.setVariable("batchId", "57bebcfd816c0dffb72d6fa4");
job.setVariable("codeMap_type", "country"); job.start();
job.waitUntilFinished(); if (job.getErrors() > 0) {
throw new Exception(
"There are errors during job exception!(执行job发生异常)");
}
} catch (KettleException e) {
e.printStackTrace();
}
} }
注:加依赖的目的就是为了让编译能通过,最后运行的环境其实还是我们手动指定的plugins目录如图所示:

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

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


然后这个转换还是跟上一个转换一样的,而且参数也是那么接收的.${paramName}这样子.其实代码网上很多,但是整合maven那些依赖之间的关系特麻烦.
最近整合发现个问题,如果不将mongo-plugins和mongo-utils包放入plugins目录里面也无法成功调用,因此需要去到,

增加完之后的plugins目录:

Javaweb整合mongo和kettle6.0的环境配置的更多相关文章
- cocos2d-x3.0 windows 环境配置
cocos2d-x3.0 windows 环境配置 参考Oo泡泡糖oO的CSDN博文 :http://blog.csdn.net/u010296979/article/details/24273393 ...
- springboot学习入门简易版八---springboot2.0多环境配置、整合mybatis mysql8+(19-20)
2.11 SpringBoot多环境配置(19) application.properties中配置 Spring.profiles.active=prd 配置环境: Application-dev ...
- 【MRPT】【icp-slam-live】Vs2013+ cmake3.6.1 + mrpt1.4.0+opencv2.9.4+wxWidget3.0.2环境配置
Win10下Vs2013 + cmake3.6.1 + mrpt1.4.0+opencv2.9.4+wxWidget3.1.0环境配置 所接触过的最令我崩溃的环境配置.之前没有考虑到vs2013 20 ...
- Berkeley DB (VC6.0 编译环境配置)
操作系统:winxp VC环境:VC6.0 必需文件:Berkeley DB安装文件(db-.msi) 下载地址:http://www.oracle.com/technology/software/p ...
- 75.VS2013和opencv3.1.0开发环境配置
首先要做的就是 开发环境配置,具体过程如下: Step 1:OpenCV环境变量配置 我的电脑--->属性--->高级系统设置--->高级--->环境变量--->系统变量 ...
- activiti自定义流程之整合(一):整体环境配置
结合之前所说的自定义流程的思路,分别是后台.前台.整合,之前的内容也分别进行了相关的练习和尝试,现在就该到了最后的整合了,依旧是以实现功能为目的,细节暂且不去管他. 因为我们实际项目后端用的是spri ...
- mac在xampp下使用yii2.0开发环境配置
在mac上装环境,折腾了我好久.先用是mac自带的php,但自带的PHP很多扩展都需要自己安装.libevent,memcache等扩展都安装好了之后,发现pdo_mysql.dll扩展又没有,悲剧的 ...
- Win7 OpenCV 3.0.0 VS2013 环境配置
参考资料:http://jingyan.baidu.com/article/75ab0bcbee4b47d6864db2fc.html 注: x86 x64 这些根据自己的系统以及需求而定, 这里就不 ...
- gtk+3.0的环境配置及基于gtk+3.0的python简单样例
/********************************************************************* * Author : Samson * Date ...
随机推荐
- Play Apple(博弈)
Problem 1604 - Play Apple Time Limit: 1000MS Memory Limit: 65536KB Total Submit: 434 Accepted: ...
- Codeforces Round #258 (Div. 2/B)/Codeforces451B_Sort the Array
解题报告 http://blog.csdn.net/juncoder/article/details/38102391 对于给定的数组,取对数组中的一段进行翻转,问翻转后是否是递增有序的. 思路: 仅 ...
- ListView嵌套ListView时发生:View too large to fit into drawing cache的问题
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXkxMzg3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/d ...
- foreach 和for语句比较
1.首先想到循环就是执行效率的问题,参考博客http://www.cnblogs.com/yzxchoice/archive/2007/12/15/995949.html 2. 测试时候发现出现“ ...
- C#编程打字指法练习
很惊讶昨晚写的第一篇学习笔记竟然有个评论了,只是今天还是对基础知识提不起精神,还是先看那三本书了解一下程序开发的大概流程吧. 今天不知道怎么闲逛就找到了这个网站,说是专门用于编程练习的,用google ...
- sqlyog绿色破解版
http://pan.baidu.com/s/1mghyUrY 下载地址
- 解决UITableView数据没有充满屏幕时,显示多余的空白cell的问题
#pragma mark 去除多余的线 -(void) clearExtrLine{ UIView *view = [[UIView alloc] init]; view.backgroundColo ...
- Char型和string型字符串比较整理
1.赋值 char赋值: char ch1[] = "give me"; char ch2[] = "a cup"; strcpy(ch1,ch2); cout ...
- ie兼容---haslayout
要想更好的理解 css, 尤其是 IE 下对 css 的渲染,haslayout 是一个非常有必要彻底弄清除的概念.大多IE下的显示错误,就是源于 haslayout. 什么是 haslayout ? ...
- Windows 下 Django/python 开发环境配置
1.安装 Aptana/Eclipse Aptana是在eclipse上二次开发的一个开源的集成开发环境,内置python编译器 http://www.aptana.com/ 2. 安装python ...