簡體   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