【问题标题】:Failed to execute Kettle job file by javajava执行Kettle作业文件失败
【发布时间】:2014-07-01 12:36:21
【问题描述】:

这是我第一次处理Pentaho 数据集成,所以我试图从java 执行工作,但我没有做到这一点!尽管 Spoon 的工作进展顺利。

这是我的代码:

jobMeta = new JobMeta(LogWriter.getInstance(), "E:\\rubbish\\job.kjb", null);
Job job = new Job(LogWriter.getInstance(), null , jobMeta);
job.start();
job.waitUntilFinished();

这是有错误的结果!:

!INFO  01-07 16:32:03,305 - Using "C:\Users\AALKHA~1\AppData\Local\Temp\vf
_cache" as temporary files store.
ERROR 01-07 16:32:03,468 - null.0 - Unable to read Job Entry copy info from XML
node : org.pentaho.di.core.exception.KettleStepLoaderException:
No valid step/plugin specified (jobPlugin=null) for SPECIAL

ERROR 01-07 16:32:03,471 - null.0 - org.pentaho.di.core.exception.KettleStepLoa
erException:
No valid step/plugin specified (jobPlugin=null) for SPECIAL

        at org.pentaho.di.job.entry.JobEntryCopy.<init>(JobEntryCopy.java:110)
        at org.pentaho.di.job.JobMeta.loadXML(JobMeta.java:922)
        at org.pentaho.di.job.JobMeta.<init>(JobMeta.java:726)
        at org.pentaho.di.job.JobMeta.<init>(JobMeta.java:693)
        at ingramint.steps.fullIntStep.step1(fullIntStep.java:62)
        at ingramint.steps.fullIntStep.<init>(fullIntStep.java:32)
        at ingramint.libs.menuLib.mainMenu(menuLib.java:75)
        at ingramint.Main.main(Main.java:24)

Jul 01, 2014 4:32:03 PM ingramint.steps.fullIntStep step1
SEVERE: null
org.pentaho.di.core.exception.KettleXMLException:
Unable to load the job from XML file [E:\rubbish\job.kjb]

Unable to load job info from XML node

Unable to read Job Entry copy info from XML node : org.pentaho.di.core.exceptio
.KettleStepLoaderException:
No valid step/plugin specified (jobPlugin=null) for SPECIAL


No valid step/plugin specified (jobPlugin=null) for SPECIAL




        at org.pentaho.di.job.JobMeta.<init>(JobMeta.java:734)
        at org.pentaho.di.job.JobMeta.<init>(JobMeta.java:693)
        at ingramint.steps.fullIntStep.step1(fullIntStep.java:62)
        at ingramint.steps.fullIntStep.<init>(fullIntStep.java:32)
        at ingramint.libs.menuLib.mainMenu(menuLib.java:75)
        at ingramint.Main.main(Main.java:24)
Caused by: org.pentaho.di.core.exception.KettleXMLException:
Unable to load job info from XML node

Unable to read Job Entry copy info from XML node : org.pentaho.di.core.exceptio
.KettleStepLoaderException:
No valid step/plugin specified (jobPlugin=null) for SPECIAL


No valid step/plugin specified (jobPlugin=null) for SPECIAL



        at org.pentaho.di.job.JobMeta.loadXML(JobMeta.java:968)
        at org.pentaho.di.job.JobMeta.<init>(JobMeta.java:726)
        ... 5 more
Caused by: org.pentaho.di.core.exception.KettleXMLException:
Unable to read Job Entry copy info from XML node : org.pentaho.di.core.exceptio
.KettleStepLoaderException:
No valid step/plugin specified (jobPlugin=null) for SPECIAL


No valid step/plugin specified (jobPlugin=null) for SPECIAL


        at org.pentaho.di.job.entry.JobEntryCopy.<init>(JobEntryCopy.java:134)
        at org.pentaho.di.job.JobMeta.loadXML(JobMeta.java:922)
        ... 6 more
Caused by: org.pentaho.di.core.exception.KettleStepLoaderException:
No valid step/plugin specified (jobPlugin=null) for SPECIAL

        at org.pentaho.di.job.entry.JobEntryCopy.<init>(JobEntryCopy.java:110)
        ... 7 more

我正在使用这些罐子:

  • kettle-core-3.2.2.jar

  • kettle-db-3.2.2.jar

  • kettle-engine-3.2.2.jar

请问有什么建议吗?

谢谢,

【问题讨论】:

  • 有什么理由你至少没有运行kettle 5.0.1? (甚至 5.1?)
  • 是的,你说得对! ,我使用它,它现在正在工作,我还在开头添加了这段代码KettleEnvironment.init();,以避免出现一些异常,如not database foundcan't read XML input file
  • 这周我做了完全相同的工作,而且效果很好。当您在顶部添加此行时,您能否粘贴您在执行 java 代码时遇到的错误。 KettleEnvironment.init();

标签: java jakarta-ee pentaho kettle


【解决方案1】:

看看下面粘贴的代码,它就起作用了。 您需要将 data-integration/lib 中存在的所有 Jars 添加到类路径中,而不仅仅是您上面提到的那些。

   public class ExecuteJob {
   public static void main(String[] args) throws Exception {
  String filename = args[0];
  KettleEnvironment.init();
  JobMeta jobMeta = new JobMeta(filename, null);
  Job job = new Job(null, jobMeta);
  job.start();
  job.waitUntilFinished();
  if (job.getErrors()!=0) {
    System.out.println(“Error encountered!”);
 } }
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    相关资源
    最近更新 更多