2016-01-20 55 views
0

我是Pentaho Kettle的新手,我使用的是最新版本6.0。我在Spoon中创建了几个简单的转换和作业。将Pentaho Kettle集成到Java应用程序时,为什么MongoDB输出不起作用?

我有一个作业,运行一个转换,只需从CSV文件中提取数据,向每行添加一对字段,并将行发送到MongoDB。我也有一个错误步骤(写入日志)脱离MongoDB输出步骤。

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

然而,当我从我的Java应用程序运行的工作,一切都完美地运行,除了当它到达MongoDB的输出一步。在那里所有的行都转到写入日志步骤,并且没有记录错误。

当我拿出写入日志步骤仍然没有记录错误,没有行被写入MongoDB。

我在我的类路径中有一个MongoDB驱动程序,并且还建议将来自Kettle根目录的classes文件夹放入我的classpath中,因为MongoDB是一个OSGi插件。我已经完成了。但是,我仍然没有将数据输入到mongodb中。

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

回答

1

实测溶液

我需要包括VM参数 - DKETTLE_PLUGIN_BASE_FOLDERS = C:\ UTIL \釜\数据集成\ SYSTEM \ karaf \ SYSTEM \的pentaho其中C:\ UTIL \釜是我系统上的路径。

注意:MongoDB插件在Apache Karaf上运行。看起来,Pentaho将他们的新插件放入这个新文件夹,而不是从Apache Felix迁移到Apache Karaf的文件夹,而不是数据集成\插件文件夹。这也是VM论证的原因。

我还需要确保以下jar文件都在我的类路径: metastore, 公地的BeanUtils, 公共沼气池, 共享记录, 公地VFS, JS(犀牛) OGNL, log4j的, 的junit, 番石榴, 公地编解码器, scannotation, 了Javassist 的pentaho-元节的API, org.apache.felix.main, 的pentaho-m的ongo-utils, pdi-dataservice-server-plugin, javax.servlet-api-3.0.1

相关问题