【问题标题】:Execute .jar file in Spoon (Pentaho Kettle)在 Spoon (Pentaho Kettle) 中执行 .jar 文件
【发布时间】:2015-03-05 11:16:30
【问题描述】:

我需要从 Spoon 执行一个 java jar 文件。

该程序只有一个类,我只想带或不带参数运行它。

该类名为“Limpieza”,位于一个名为:

com.overflow.csv.clean

我已将 jar 部署到:

C:\Program Files (x86)\Kettle\data-integration\lib

从修改后的 JavaScriptValue 步骤,我这样称呼它:

var jar = com.everis.csv.clean.Limpieza;

这根本不起作用,有没有办法让它起作用? 有一种方法可以在程序运行时查看程序打印的日志也很好。 运行转换时我没有收到任何错误。

谢谢。

【问题讨论】:

    标签: java javascript pentaho kettle


    【解决方案1】:

    答案是创建一个用户定义的 Java 类(按照 Rishu 指出的指南),这是我的工作代码:

    import java.util.*;
    import com.everis.csv.Cleaner;
    
    public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
    {
        Cleaner c = new Cleaner();
        c.clean();
        // The rest of it is for making it work
        // You will also need to make a Generate Rows step that inputs a row to this step. 
        Object[] r = getRow();
    
        if (r == null) {
            setOutputDone();
            return false;
        } 
        r = createOutputRow(r, data.outputRowMeta.size());
        putRow(data.outputRowMeta, r);
    
        return true;
    }
    

    【讨论】:

      【解决方案2】:

      【讨论】:

        【解决方案3】:

        Spoon 将加载其存在的任何 jar 文件

        数据集成\lib

        文件夹及其子文件夹在启动过程中,所以如果你想从自定义 jar 访问类,你可以把 jar 放在这里。

        所以你需要创建一个自定义jar并将jar放入

        数据集成\lib

        位置。

        在“修改的 Java 脚本值”或“用户定义的 Java 类步骤”中调用自定义类时,您应该使用完全限定名称进行调用。例如
        var jar = com.everis.csv.clean.Limpieza.getInstance().getMyString();

        注意:放置罐子后,请确保重新启动 Spoon。

        如果还是不行,请附上 Pentaho.log (data-integration-server/logs/Pentaho.log) 和 catalina.out(data-integration-server/tomcat/logs) 日志

        【讨论】:

        • 好的,它可以工作,但不如预期。当我单击步骤中的获取变量时,它正在执行该方法。当我运行转换时,没有任何反应。
        • 另外,我没有任何 Pentaho.log 可查看,因为此版本的 Pentaho 已在没有任何 tomcat 服务器的情况下部署。 +
        • 如果我使用 getInstance 方法,我会得到以下结果:Java 类“com.everis.csv.Cleaner”没有名为“getInstance”的公共实例字段或方法。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多