【问题标题】:Error while executing pentaho transformation (talking to Sql server) through java program通过java程序执行pentaho转换(与Sql server通信)时出错
【发布时间】:2015-07-30 15:08:19
【问题描述】:

我有一个 Kettle (5.4.0.1) 转换,它在“表输入”任务中的 MS Sql server 2008 R2 中执行查询。 任务在 Spoon UI 中直接或通过 Job 成功执行。 我想通过我获得此代码的 Java 程序执行相同的转换 -

KettleEnvironment.init();
TransMeta metaData = new TransMeta("first_transformation.ktr");
Trans trans = new Trans( metaData );
trans.execute( null );
trans.waitUntilFinished();

但是在 java 程序中执行它时,我得到了这个错误 -

2015/07/30 20:08:34 - TestTransformation - 调度开始 转换 [TestTransformation] 2015/07/30 20:08:34 - XML Output.0 - 以编码打开输出流:UTF-8 2015/07/30 20:08:34 - 表 input.0 - 错误(版本 5.4.0.1-130,从 2015-06-14_12-34-55 构建 1 by buildguy) :发生错误,处理将停止: 2015/07/30 20:08:34 - 表 input.0 - 尝试 连接到数据库 2015/07/30 20:08:34 - 表 input.0 - java.io.File 参数必须是目录。 [C:\Root\EclipseWorkSpace\TestProject\simple-jndi] 2015/07/30 20:08:34 - Table input.0 - 读完查询,关闭连接。 2015/07/30 20:08:34 - 表 input.0 - 错误(版本 5.4.0.1-130, buildguy 从 2015-06-14_12-34-55 构建 1):初始化错误 步骤 [表格输入] 2015/07/30 20:08:34 - TestTransformation - 错误 (版本 5.4.0.1-130,buildguy 从 2015-06-14_12-34-55 构建 1): 步骤 [Table input.0] 初始化失败! org.pentaho.di.core.exception.KettleException:我们失败了 至少初始化一个步骤。执行无法开始!在 org.pentaho.di.trans.Trans.prepareExecution(Trans.java:1149) 在 org.pentaho.di.trans.Trans.execute(Trans.java:607) 在 TestKettle.main(TestKettle.java:24)

在通过 UI 和我试图在上面的代码中执行的同一个 KTR 文件时数据库连接成功发生,这可能是什么问题?

【问题讨论】:

    标签: pentaho kettle


    【解决方案1】:

    Ktr 中的 Table Input Step 似乎无法读取数据。

    首先,如果您从 Java 代码调用 ktr 文件,请确保在 Java 项目中正确导入/构建数据库驱动程序 jar 文件。我的意思是在java项目中导入“sqlserver”数据库jar文件。

    您可以尝试阅读此blog。我使用 Maven 来处理 jars 的依赖关系(我的数据库是:postgresql)。它有效:)

    希望这会有所帮助:)

    【讨论】:

    • 感谢您的回复,在我的情况下,我已经包含了 sql server jar 文件。
    【解决方案2】:

    对于其他面临此问题的人 - 问题是 Pentaho 安装目录中的 Simple-Jndi 文件夹需要放置在项目文件夹中,尽管在错误中提到它,但从上面的错误消息中并不明显。

    2015/07/30 20:08:34 - Table input.0 - java.io.File parameter must be a directory. [C:\Root\EclipseWorkSpace\TestProject\simple-jndi]
    

    在此之后,我遇到了另外两个更清楚的错误,即项目文件夹中缺少文件 - ESAPI.Properties 和 validation.properties。我从给定here 的链接下载了它们。然后程序运行成功。

    【讨论】:

    • 太棒了。既然你找到了答案..请求你关闭这个线程。
    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多