我有简单的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)
我搜索了这个错误没有成功,我在那里。
有什么建议吗?
答案 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);
希望这有助于其他人。