Pentaho 初始化UserDefinedJavaClass时出错

Pentaho 初始化UserDefinedJavaClass时出错,pentaho,kettle,pentaho-spoon,Pentaho,Kettle,Pentaho Spoon,我目前有一个转换,其中包括一个UserDefinedJavaClass步骤。这在Spoon中运行与预期一致。当我尝试使用水壶罐作为web应用程序的一部分运行此转换时,会出现以下错误: 017/01/20 10:04:56 - Load questionnaires.0 - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : Error initializing UserDefinedJavaCla

我目前有一个转换,其中包括一个UserDefinedJavaClass步骤。这在Spoon中运行与预期一致。当我尝试使用水壶罐作为web应用程序的一部分运行此转换时,会出现以下错误:

017/01/20 10:04:56 - Load questionnaires.0 - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : Error initializing UserDefinedJavaClass:
2017/01/20 10:04:56 - Load questionnaires.0 - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : org.pentaho.di.core.exception.KettleException: 
2017/01/20 10:04:56 - Load questionnaires.0 - null
2017/01/20 10:04:56 - Load questionnaires.0 - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : Error initializing step [Load questionnaires]
2017/01/20 10:04:57 - evalue-di-risk - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : Step [Load questionnaires.0] failed to initialize!
因为这在勺子里起作用,我只能假设我错过了一个图书馆。我已经包括了水壶核心,水壶引擎(水壶版本6.1.0.1-196)和janino,我本以为这是我所需要的运行

编辑我从Spoon lib文件夹中取出每个罐子,并将其转储到我的Web应用程序中,但这也不起作用


再次编辑问题在于,用户定义的JavaClass和包含在转换过程中应替换的变量的表输入不起作用,并导致上述错误。

您不能这样做,必须使用sdk api

并从应用程序中编译


您不能这样做,您必须使用sdk api

并从应用程序中编译


我可能没有很好地解释我自己,因为我可以按照我的要求去做。原来问题是有一个UserDefinedJavaClass和一个包含变量的表输入似乎不起作用。我不知道你说的“将它转储到我的webapp中,这也不起作用”是什么意思。webapp?你不能用水壶变换来做到这一点。我可能没有很好地解释我自己,因为我可以按照我的要求去做。原来问题是有一个UserDefinedJavaClass和一个包含变量的表输入似乎不起作用。我不知道你说的“将它转储到我的webapp中,这也不起作用”是什么意思。webapp?使用kettle转换无法做到这一点。请注意:我在报告中运行转换时遇到了类似的问题:如果连接参数的默认值不能导致有效的连接,那么udjc步骤将失败。看起来udjc步骤首先使用默认参数值进行验证或编译,然后,如果连接成功,则插入实际参数值。最后,我将我的逻辑从java重新编写为javascript。但是,如果您正在从其他java代码调用转换,您可以尝试更改默认的pdi工作流,例如,在初始化转换之前手动设置默认参数值。我可能也必须这样做。这是一个有效的连接,变量在我的SQL语句中。请注意:我在报告中运行转换时遇到了类似的问题:如果连接参数的默认值没有导致有效的连接,那么udjc步骤失败。看起来udjc步骤首先使用默认参数值进行验证或编译,然后,如果连接成功,则插入实际参数值。最后,我将我的逻辑从java重新编写为javascript。但是,如果您正在从其他java代码调用转换,您可以尝试更改默认的pdi工作流,例如,在初始化转换之前手动设置默认参数值。我可能也必须这样做。它是一个有效的连接,变量在我的SQL语句中。