在 Java 上运行 PDI Kettle - Mongodb 步骤缺少插件

Posted

技术标签:

【中文标题】在 Java 上运行 PDI Kettle - Mongodb 步骤缺少插件【英文标题】:Running PDI Kettle on Java - Mongodb Step Missing Plugins 【发布时间】:2015-08-16 12:09:04 【问题描述】:

我正在尝试运行一个转换,其中包括来自 java 应用程序的 mongodb 输入步骤,但始终导致此消息错误:

org.pentaho.di.core.exception.KettleMissingPluginsException: 
Missing plugins found while loading a transformation

Step : MongoDbInput

at org.pentaho.di.trans.TransMeta.loadXML(TransMeta.java:2931)
at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2813)
at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2774)
at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2759)
at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2744)
at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2718)
at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2690)
at com.skripsi.dw.streamingtwitter.ETLtest.main(ETLtest.java:31)

我从这个帖子中找到了一些相关的答案: Angry org.pentaho.di.core.exception.KettleMissingPluginsException in Step : JmsOutput Why?

这是将插件移动到应用程序文件夹的根路径,我做了,但仍然导致不同消息的错误:

Exception in thread "main" java.lang.AbstractMethodError
at org.pentaho.di.core.plugins.BasePluginType.handlePluginAnnotation(BasePluginType.java:599)
at org.pentaho.di.core.plugins.BasePluginType.registerPluginJars(BasePluginType.java:558)
at org.pentaho.di.core.plugins.BasePluginType.searchPlugins(BasePluginType.java:117)
at org.pentaho.di.core.plugins.PluginRegistry.registerType(PluginRegistry.java:517)
at org.pentaho.di.core.plugins.PluginRegistry.init(PluginRegistry.java:489)
at org.pentaho.di.core.KettleClientEnvironment.init(KettleClientEnvironment.java:69)
at org.pentaho.di.core.KettleEnvironment.init(KettleEnvironment.java:89)
at org.pentaho.di.core.KettleEnvironment.init(KettleEnvironment.java:65)

我试图传递一个参数:

-DKETTLE_PLUGIN_BASE_FOLDERS=/home/razza/PentahoCE/pdi-ce-5.1.0/data-integration/plugins

正如在此线程上建议的那样: Pentaho MongoDBInput Java integration 但还是没有解决我的问题

为了以防万一,我检查了通过 kitchen.sh 命令运行我的 kjb 文件,它运行良好,没有任何问题。

谁能帮我看看我做错了哪一部分? 谢谢

【问题讨论】:

【参考方案1】:

见Missing plugins found while loading a transformation on Kettle

如果这是您所做的,它应该可以工作。你确定你正确安装了插件吗?您设置了 OPT 变量

export OPT="-verbose:class"

当您运行spoon.sh 时,这将显示所有已加载的类。您可以验证它是否从插件中找到类。

您可以使用 jar 实用程序在插件中找到类,例如:

jar tf $plugin_folder/mongodb.jar

希望对你有帮助...

【讨论】:

以上是关于在 Java 上运行 PDI Kettle - Mongodb 步骤缺少插件的主要内容,如果未能解决你的问题,请参考以下文章

使用java源代码生成Kettle 4.4

Pentaho PDI 9(水壶):厨房无法继续,因为无法加载作业

使用 Pentaho Kettle/PDI 将行列转换为行

PDI 学习2:KETTLE安装,环境变量配置,开发准备

Pentaho PDI/Kettle 从文本文件中读取多行

Pentaho/PDI/Kettle:如何用 Excel 电子表格中的值填充“插入/更新”?