2013-07-22 81 views
1

我有一個簡單的pentaho形成MongoDBInput與JSON輸出連接。我能在我的Pentaho的設計工作室看到預覽獲取JSON但我嘗試用java集成和運行轉換,其投擲的錯誤 - 在線程Pentaho MongoDBInput Java集成

異常「主要」 org.pentaho.di .core.exception.KettleXMLException:錯誤從XML文件讀取 對象

無法從XML步驟加載步驟信息 nodeorg.pentaho.di.core.exception.KettleStepLoaderException:無法 加載類步驟/插件id爲[MongoDbInput]。檢查 插件是否可用於Kettle 分發版的plugins子目錄中。

無法加載具有ID [MongoDbInput]的步驟/插件的類。檢查 該插件是否可用於Kettle 分發版的plugins子目錄中。

我的代碼是:

import java.io.IOException; 
import java.util.List; 
import org.pentaho.di.core.KettleEnvironment; 
import org.pentaho.di.core.util.EnvUtil; 
import org.pentaho.di.trans.TransMeta; 
import org.pentaho.di.trans.Trans; 
import org.pentaho.di.core.*; 
import org.pentaho.di.core.exception.*; 

public class KettleConnector { 

    public static void main(String[] args) throws KettleException, IOException{ 

     KettleEnvironment.init(false); 

     EnvUtil.environmentInit(); 

     TransMeta transMeta = new TransMeta("D:\\mangoes.ktr"); 

     Trans trans = new Trans(transMeta); 

     trans.execute(null); // You can pass arguments instead of null. 

     trans.waitUntilFinished(); 

     Result r = trans.getResult(); 

     List<RowMetaAndData> rowsResult = r.getRows(); 
     System.out.println(trans.getTransMeta()); 

     if (trans.getErrors() > 0) { 

     throw new RuntimeException(); 

     } 

    } 

} 

它工作正常的MySQL的轉換。

我已經包括蒙戈 - 2.4jar和蒙戈-Java的應用程序,2.7.2.jar

還是現在面臨這個錯誤。

回答

1

請檢查您是否添加VM參數運行時:

-DKETTLE_PLUGIN_BASE_FOLDERS=D:/LOCATION/data-integration/plugins 
+0

哇..謝謝..它真的幫助.. – user2572739

0

MongoDB的步驟是Pentaho數據集成(PDI)插件。你使用的是什麼版本的PDI?如果您使用的是4.4.0,那麼您將需要包含MongoDB步驟的Big Data插件。從啓動應用程序的位置開始,您需要一個包含大數據插件(pentaho-big-data-plugin文件夾)內容的插件/步驟文件夾。然後,您調用KettleEnvironment.init()將加載插件,您將可以訪問MongoDB步驟。

0

Matt..I正在使用Pentaho的水壺5.1。插件文件夾中需要包含哪些jar以供Mongodb步驟使用。我已經包含了插件/ pentaho-mongodb-plugin中的所有內容?

還是得到了同樣的錯誤

0

好吧......想通了馬特的幫助。 雖然這個答案與java WAR文件的設計不太吻合,但實際上您需要將整個plugins文件夾作爲參數(-D)傳遞到您的應用服務器。這裏有一個例子

-DKETTLE_PLUGIN_BASE_FOLDERS = /用戶/用戶1 /文檔/ PDI-CE-5.1.0 /數據集成/插件