2

我有一个简单的工作(名为 A),它开始一个简单的转换(名为 A)。转换仅包含一个虚拟组件。它们都存储在数据库存储库中。

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

./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)

我已经用谷歌搜索了这个错误但没有成功,我被困在那里。

有什么建议吗?

4

1 回答 1

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);

希望这对其他人有帮助。

于 2013-04-19T15:16:55.317 回答