繁体   English   中英

将Pentaho Kettle集成到Java应用程序中时,为什么MongoDB输出不起作用?

[英]When Integrating Pentaho Kettle into a Java Application, Why is the MongoDB output not working?

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

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

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

但是,当我从Java应用程序运行Job时,除进入MongoDB Output步骤外,一切都运行良好。 所有行都进入“ 写入日志”步骤,并且没有记录任何错误。

当我执行“ 写入日志”步骤时,仍然没有记录错误,也没有行写入MongoDB。

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

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

找到了解决方案

我需要包含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在我的类路径中: metastore, commons-beanutils,commons-digester,commons-logging,commons-vfs,js(rhino),ognl,log4j,junit,guava,commons-codec,scannotation ,javassist pentaho-metaverse-api,org.apache.felix.main,pentaho-mongo-utils,pdi-dataservice-server-plugin,javax.servlet-api-3.0.1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM