【问题标题】:When Integrating Pentaho Kettle into a Java Application, Why is the MongoDB output not working?将 Pentaho Kettle 集成到 Java 应用程序时,为什么 MongoDB 输出不起作用?
【发布时间】:2016-01-20 16:39:30
【问题描述】:

我是 Pentaho Kettle 的新手,我使用的是最新版本 6.0。我在 Spoon 中创建了几个简单的转换和作业。

我有一个运行转换的作业,该转换只是从 CSV 文件中提取数据,向每一行添加几个字段,然后将这些行发送到 MongoDB。我还有一个错误步骤(写入日志)来自 MongoDB 输出步骤。

作业和转换在 Spoon 中完美运行,所有行都显示在 MongoDB 中。

但是,当我从我的 Java 应用程序运行作业时,一切都运行良好,除非它进入 MongoDB 输出 步骤。所有行都转到 Write to Log 步骤,并且没有记录错误。

当我执行 Write to Log 步骤时,仍然没有记录任何错误,也没有向 MongoDB 写入任何行。

我的类路径中有一个 MongoDB 驱动程序,还建议将 Kettle 根目录中的类文件夹放入我的类路径中,因为 MongoDB 是一个 OSGi 插件。这是我做过的。但是,我仍然没有将数据导入 mongodb。

进一步的研究表明,MongoDB 插件是在 Apache Karaf 实现中运行的。我是否需要将我的 Java 应用程序作为 Karaf 容器中的插件与 MongoDB 插件一起运行,还是有更简单的方法?

【问题讨论】:

    标签: java mongodb kettle karaf


    【解决方案1】:

    找到解决办法

    我需要包含 VM 参数 -DKETTLE_PLUGIN_BASE_FOLDERS=C:\util\kettle\data-integration\system\karaf\system\pentaho 其中 C:\util\kettle 是我系统上的路径。

    注意:MongoDB 插件在 Apache Karaf 上运行。 Pentaho 从 Apache Felix 迁移到 Apache Karaf 时,似乎将他们的新插件放在了这个新文件夹中,而不是 data-integration\plugins 文件夹中。这也是 VM 争论的原因。

    我还需要确保以下 jar 在我的类路径中: 元存储, commons-beanutils, 公共消化器, 公共记录, 公共-vfs, js(犀牛), ognl, 日志4j, 朱尼特, 番石榴, 公共编解码器, 扫描注释, javassist pentaho-metaverse-api, org.apache.felix.main, pentaho-mongo-utils, pdi 数据服务服务器插件, javax.servlet-api-3.0.1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-07
      相关资源
      最近更新 更多