无法打开转换:null - 从Java运行作业

时间:2013-04-19 14:34:52

标签: pentaho kettle

我有简单的Job(名为A),它启动一个简单的转换(名为A)。转型 仅包含虚拟组件。 它们都存储在db存储库中。

如果我从厨房开始工作,一切运行良好:

./kitchen.sh -rep=spoon -user=<user> -pass=<pwd> -job A

然后我写了一个简单的java代码:

JobMeta jobMeta = repository.loadJob(jobName, directory, null, null);
org.pentaho.di.job.Job job = new org.pentaho.di.job.Job(null, jobMeta);
job.getJobMeta().setInternalKettleVariables(job);
job.setLogLevel(LogLevel.ERROR);
job.setName(Thread.currentThread().getName());

job.start();
job.waitUntilFinished();

if (job.getResult() != null && job.getResult().getNrErrors() != 0) {
   ...
}
else {
   ...
}

问题是运行java程序我总是遇到以下错误:

A - Unable to open transformation: null
A - java.lang.NullPointerException
at org.pentaho.di.job.entries.trans.JobEntryTrans.execute(JobEntryTrans.java:698)
at org.pentaho.di.job.Job.execute(Job.java:589)
at org.pentaho.di.job.Job.execute(Job.java:728)
at org.pentaho.di.job.Job.execute(Job.java:443)
at org.pentaho.di.job.Job.run(Job.java:363)

我搜索了这个错误没有成功,我在那里。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

解决方案似乎正在取代

org.pentaho.di.job.Job job = new org.pentaho.di.job.Job(null, jobMeta);

org.pentaho.di.job.Job job = new org.pentaho.di.job.Job(repository, jobMeta);

希望这有助于其他人。