2017-01-16 56 views
0

我已經設計了一個Pentaho數據集成UI工具的轉換,並編寫了一個java代碼來執行轉換。我也跟着下面的資源鏈接,因爲它是Java Pentaho異常MongoDB

try { 
     /** 
     * Initialize the Kettle Enviornment 
     */ 
     KettleEnvironment.init(); 

     /** 
     * Create a trans object to properly assign the ktr metadata. 
     * 
     * @filedb: The ktr file path to be executed. 
     * 
     */ 
     TransMeta metadata = new TransMeta("Districts.ktr"); 
     Trans trans = new Trans(metadata); 

     // Execute the transformation 
     trans.execute(null); 
     trans.waitUntilFinished(); 

     // checking for errors 
     if (trans.getErrors() > 0) { 
      System.out.println("Erroruting Transformation"); 
     } 

    } catch (KettleException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

我的pom.xml低於

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>org.test.kettle</groupId> 
<artifactId>kettle-run</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>jar</packaging> 
<properties> 
    <pentaho-kettle.version>5.0.0.1</pentaho-kettle.version> 
    <postgres.version>9.2-1004-jdbc41</postgres.version> 
</properties> 

<repositories> 
    <repository> 
     <id>pentaho-releases</id> 
     <url>http://repository.pentaho.org/artifactory/repo/</url> 
    </repository> 
</repositories> 

<dependencies> 
    <dependency> 
     <groupId>pentaho-kettle</groupId> 
     <artifactId>kettle-core</artifactId> 
     <version>${pentaho-kettle.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>pentaho-kettle</groupId> 
     <artifactId>kettle-dbdialog</artifactId> 
     <version>${pentaho-kettle.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-vfs</groupId> 
     <artifactId>commons-vfs</artifactId> 
     <version>1.0</version> 
    </dependency> 
    <dependency> 
     <groupId>pentaho-kettle</groupId> 
     <artifactId>kettle-engine</artifactId> 
     <version>${pentaho-kettle.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>pentaho-kettle</groupId> 
     <artifactId>kettle-ui-swt</artifactId> 
     <version>${pentaho-kettle.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>pentaho-library</groupId> 
     <artifactId>libformula</artifactId> 
     <version>5.0.2</version> 
     <exclusions> 
      <exclusion> 
       <groupId>commons-logging</groupId> 
       <artifactId>commons-logging-api</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.codehaus.janino</groupId> 
     <artifactId>janino</artifactId> 
     <version>2.5.16</version> 
    </dependency> 
    <dependency> 
     <groupId>org.mozilla</groupId> 
     <artifactId>rhino</artifactId> 
     <version>1.7R5</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.mail</groupId> 
     <artifactId>javax.mail-api</artifactId> 
     <version>1.4.7</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.6.4</version> 
    </dependency> 

    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.6.4</version> 
    </dependency> 

    <dependency> 
     <groupId>org.postgresql</groupId> 
     <artifactId>postgresql</artifactId> 
     <version>${postgres.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>pentaho</groupId> 
     <artifactId>pentaho-mongodb-plugin</artifactId> 
     <version>5.0.4</version> 
    </dependency> 
    <dependency> 
     <groupId>org.mongodb</groupId> 
     <artifactId>mongo-java-driver</artifactId> 
     <version>2.11.1</version> 
    </dependency> 
</dependencies> 

我的轉型蒙戈DB輸入,然後插入到PostgreSQL。與Pentaho的版本5.0.0.1,它拋出以下錯誤

org.pentaho.di.core.exception.KettleMissingPluginsException: 

缺少發現插件在加載轉型

步驟:MongoDbInput 在org.pentaho.di.trans.TransMeta.loadXML(TransMeta.java:2931 ) 在org.pentaho.di.trans.TransMeta。(TransMeta.java:2813) 在org.pentaho.di.trans.TransMeta。(TransMeta.java:2774) 在org.pentaho.di.trans.TransMeta 。(TransMeta.java:2759) at org.pentaho.di.trans.TransMeta。(TransMeta.java:2744) at org.pentaho.di.trans.TransMeta。(TransMeta.java:2 718) 在org.pentaho.di.trans.TransMeta。(TransMeta.java:2690) 在org.kettle.test.Execute.main(Execute.java:72)

可能是什麼背後的原因?

預先感謝您

Thusira

回答

0

增加kettle.properties文件的插件文件夾位置

KETTLE_PLUGIN_BASE_FOLDERS = /用戶/ DIR /凱特爾/插件