Pentaho命令行空指针异常

Pentaho命令行空指针异常,pentaho,pdi,Pentaho,Pdi,Pentaho PDI版本8.3.0 CE(如有必要) 当我尝试分别使用kitchen或pan运行作业或转换命令行时,会出现nullpointer异常。只有在尝试从存储库运行某些内容时才会发生这种情况。 当我尝试从spoon运行相同的转换或作业时,一切都很好,作业运行得很好 我使用以下命令,它们都提供相同的错误: ./pan.sh-trans=get\u clusters-rep=myrepo-user=admin-pass=mypass-dir=/Transformations 及 ./kit

Pentaho PDI版本8.3.0 CE(如有必要)

当我尝试分别使用kitchen或pan运行作业或转换命令行时,会出现nullpointer异常。只有在尝试从存储库运行某些内容时才会发生这种情况。 当我尝试从spoon运行相同的转换或作业时,一切都很好,作业运行得很好

我使用以下命令,它们都提供相同的错误:

./pan.sh-trans=get\u clusters-rep=myrepo-user=admin-pass=mypass-dir=/Transformations

./kitchen.sh-job=scheduled\u update\u job-rep=myrepo-user=admin-pass=mypass-dir=/Jobs

注意:当我试图从docker容器运行作业或转换时,也会发生此错误

我收到的错误如下所示,并且与PAN和Kitchen的错误相同:

020/02/05 09:07:56 - Pan - Start of run.
Processing has stopped because of an error: null
java.lang.NullPointerException
    at org.pentaho.di.core.plugins.PluginRegistry.getPluginId(PluginRegistry.java:689)
    at org.pentaho.di.core.plugins.PluginRegistry.getPlugin(PluginRegistry.java:715)
    at org.pentaho.di.core.plugins.PluginRegistry.loadClass(PluginRegistry.java:370)
    at org.pentaho.di.base.AbstractBaseCommandExecutor.establishRepositoryConnection(AbstractBaseCommandExecutor.java:195)
    at org.pentaho.di.pan.PanCommandExecutor.execute(PanCommandExecutor.java:119)
    at org.pentaho.di.pan.Pan.main(Pan.java:270)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.pentaho.commons.launcher.Launcher.main(Launcher.java:92)

任何帮助都将不胜感激。

使用pan.sh或kitchen.sh的完整路径从主目录(作为工作目录)运行作业

我不确定到底是什么引起了麻烦。可能的原因:

  • 您的KETTLE_主页无效,导致Pentaho在工作目录中查找.KETTLE。(不包括家中的水壶)
  • 这种情况的一种变体是,如果您以root用户身份复制/移动文件,则您对这些文件没有权限
  • 您的用户没有对数据集成目录的写入权限,导致写入通常会进入工作目录的配置时出现一些故障。运行Pentaho时使用的帐户在这里没有写访问权限是正常的,这不是问题所在,只是它不喜欢不可写的工作目录

仅供参考:我还按照文档中的说明将水壶设置在家中。这对本地设置和docker容器都没有影响。另外:我已经完全扔掉了pan和kitchen的karaf缓存,但这也不能解决问题。看起来它无法获得一些插件,可能是存储库插件。您是否从同一个数据集成文件夹运行它?如果没有,您可能缺少一个插件。另外,如果您配置的KETTLE_HOME与Spoon使用的不同,请检查是否有有效的repositories.xmlHmmmm。出于某种原因,这起作用了!现在只想弄清楚为什么它是这样工作的(我想这就是为什么首先要把KETTLE_放在家里的原因),然后弄清楚如何合并到docker容器中。谢谢Cyrus,请把评论变成回答,这样我就可以接受了。