使用java调用kettle 总结(二)

来源:互联网 发布:mac 翻墙付费软件 编辑:程序博客网 时间:2024/06/18 12:34

使用java调用kettle 总结(二)

java调用本地kjb、ktr文件

1:java代码

public class Test extends HttpServlet {    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp)            throws ServletException, IOException {         StartKettleJob.runJob(null, "kettle/test/job_1.kjb");    }    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp)            throws ServletException, IOException {    doGet(req, resp);    }}public static String runJob(String[] params, String jobPath ) {    try {        System.out.println("jobpath" + jobPath);        KettleEnvironment.init();        // jobname 是Job脚本的路径及名称        JobMeta jobMeta = new JobMeta(jobPath, null);        Job job = new Job(null, jobMeta);        job.setParameterValue("id", null);        job.start();        job.waitUntilFinished();        String msg = msgFactory.getMsg("5");        if (job.getErrors() > 0) {            return msg;            // Exception("There are errors during job exception!(执行job发生异常)");        }    } catch (Exception e) {        e.printStackTrace();    }    return  "";}

2出错信息

- 提示在对应位置找不到文件,如下图,把文件放在tomcat的 bin目录下

Unable to read file [file:///D:/soft/myeclipse/apache-tomcat-7.0.70-windows-x64/apache-tomcat-7.0.70/bin/kettle/test/job_1.kjb]Could not read from "file:///D:/soft/myeclipse/apache-tomcat-7.0.70-windows-x64/apache-tomcat-7.0.70/bin/kettle/test/job_1.kjb" because it is not a file.

- 数据库连接出错(使用jndi)

- java.io.File parameter must be a directory. [D:\soft\myeclipse\apache-tomcat-7.0.70-windows-x64\apache-tomcat-7.0.70\bin\simple-jndi]


根据提示把simple-jndi文件夹放在 tomcat的bin目录下

weblogic服务器文件放置位置

如图

如果使用绝对路径和jdbc的方式配置数据库不会出现上诉情况

原创粉丝点击