org.apache.commons
commons-vfs2
2.0
org.scannotation
scannotation
1.0.3
dom4j
dom4j
1.6.1
pentaho-kettle
kettle-vfs
5.2.0.0
pentaho
pentaho-kettle
kettle-engine
5.2.0.0
pentaho-kettle
kettle-core
5.2.0.0
OK,准备工作完成后开始编写Kettle工具类:
//
//Source code recreated from a .class file by IntelliJ IDEA//(powered by Fernflower decompiler)//import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLDecoder;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import org.pentaho.di.core.KettleEnvironment;
import org.pentaho.di.trans.Trans;
import org.pentaho.di.trans.TransMeta;public classKettle {publicKettle() {
}public staticInputStream export(String sql, String savePath, String hostIp, String dbName, String port, String userName, String password) {
FileInputStreamin = null;try{
HttpServletResponse response=ServletActionContext.getResponse();
URL url= Kettle.class.getResource("/");
String paths= url.getFile().substring(0, url.getFile().indexOf("classes"));
paths=URLDecoder.decode(paths);
Long times=System.currentTimeMillis();
File path= newFile(savePath);if (!path.exists() && !path.isDirectory()) {
path.mkdir();
path.canWrite();
}
KettleEnvironment.init();
TransMeta tm= new TransMeta(paths + "classes/" + "export.ktr");
Trans trans= newTrans(tm);
trans.setVariable("hostIp", hostIp);
trans.setVariable("dbName", dbName);