[英]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.