我有一个简单的 pentaho 格式,MongoDBInput 与 JSON 输出相连。当我在 Pentaho Design studio 中看到预览时,我能够获取 json,但是当我尝试与 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 转换。
我已经包含了 mongo-2.4jar 和 mongo-java-driver-2.7.2.jar
仍然面临这个错误。