2013-07-22 83 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 /数据集成/插件