[英]Execute .jar file in Spoon (Pentaho Kettle)
我需要從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;
這根本不起作用,是否有辦法使它起作用? 如果有一種方法可以在程序運行時查看程序打印的日志,這也很好。 運行轉換時沒有出現任何錯誤。
謝謝。
Spoon將加載其中存在的所有jar文件
數據集成\\ LIB
文件夾及其啟動時的子文件夾,因此,如果要從自定義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)日志
答案是創建一個用戶定義的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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.