Java集成kettle调用trans文件
2017-04-25 15:48
316 查看
1.调用本地文件
2.调用资源库文件(两种,思路是一样)
第一种:
第二种:
public static void runNativeTransformation(String[] params,String filename) { try { //初始化 KettleEnvironment.init(); EnvUtil.environmentInit(); TransMeta transMeta = new TransMeta(filename); //转换 Trans trans = new Trans(transMeta); //执行 trans.execute(params); // You can pass arguments instead of null. //等待结束 trans.waitUntilFinished(); if ( trans.getErrors() > 0 ){ throw new RuntimeException( "There were errors during transformation execution." ); } } catch (KettleException e ) { // TODO Put your exception-handling code here. System.out.println(filename); System.out.println("-------------------------------------------------"); System.out.println(e); } }
2.调用资源库文件(两种,思路是一样)
第一种:
public static void runRepositoryTransformation(String filename){ String repositoryName = "kettle_repository"; String repositoryPassword = "admin"; String repositoryUserName = "admin"; try{ KettleEnvironment.init(); EnvUtil.environmentInit(); RepositoriesMeta repositoriesMeta = new RepositoriesMeta(); repositoriesMeta.readData(); //资源库元数据都在Repositories.xml中,该方法用来读取 RepositoryMeta repositoryMeta = repositoriesMeta.findRepository(repositoryName); PluginRegistry registry = PluginRegistry.getInstance(); //获得资源库对象 Repository repository =registry.loadClass(RepositoryPluginType.class,repositoryMeta,Repository.class); repository.init(repositoryMeta); repository.connect(repositoryUserName,repositoryPassword); RepositoryDirectoryInterface directory = repository.findDirectory("/test"); //资源库中文件夹名称 TransMeta transformationMeta = ((Repository) repository).loadTransformation(filename, directory, null, true, null ) ; Trans trans = new Trans(transformationMeta); trans.execute(null); trans.waitUntilFinished(); if ( trans.getErrors() > 0 ){ throw new RuntimeException( "There were errors during transformation execution." ); } } catch (KettleException e) { e.printStackTrace(); } }
第二种:
public static void runRepositoryTransformation(String filename){ String repositoryXML="<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<connection>" + "<name>kettle_repository</name>" + "<server>192.168.1.124</server>" + "<type>Mysql</type>" + "<access>Native</access>" + "<database>kettle_repository</database>" + "<port>3306</port>" + "<username>root</username>" + "<password>123456</password>" + "</connection>"; String repositoryName = "kettle_repository"; String repositoryPassword = "admin"; String repositoryUserName = "admin"; try { KettleEnvironment.init(); EnvUtil.environmentInit(); KettleDatabaseRepository repository = new KettleDatabaseRepository(); // DatabaseMeta dataMeta = // new DatabaseMeta("kettle_repository","MySQL","JDBC","192.168.1.124","kettle_repository","3306","root","123456"); DatabaseMeta dataMeta = new DatabaseMeta(repositoryXML); KettleDatabaseRepositoryMeta kettleDatabaseMeta = new KettleDatabaseRepositoryMeta("kettle_repository", "kettle_repository", "king description",dataMeta); repository.init(kettleDatabaseMeta); repository.connect("admin","admin"); RepositoryDirectoryInterface directory = repository.findDirectory("/test"); //资源库中文件夹名称 TransMeta transformationMeta = ((Repository) repository).loadTransformation(filename, directory, null, true, null ) ; Trans trans = new Trans(transformationMeta); trans.execute(null); trans.waitUntilFinished(); if ( trans.getErrors() > 0 ){ throw new RuntimeException( "There were errors during transformation execution." ); } } catch (KettleException e) { e.printStackTrace(); } }
相关文章推荐
- java调用kettle中的资源库文件(job\trans)
- java中调用kettle转换文件
- java调用kettle中的job和trans
- Kettle调用Java文件(Jar包)
- java中调用kettle转换文件
- java调用kettle文件实例
- java中调用kettle转换文件
- Kettle调用Java文件(Jar包)
- Java程序调用kettle中的job(.kjb)和Trans(.ktr)
- java中调用kettle转换文件
- Java程序调用kettle中的job及trans
- Java如何调用可执行文件和批处理命令
- JAVA调用exe可执行文件
- 调用系统命令实现删除文件的操作,java调用系统命令实现删除文件的操作
- Java调用dll与C++通讯(包括.dll文件的制作)
- Java调用外部jar文件
- Java中调用本地的其他文件。运行,命令窗口
- Java调用批处理或可执行文件
- Java如何调用可执行文件和批处理命令
- 从批处理文件中抽取作业号以及所有调用的JAVA CLASS名