Exécuter *.ktr en Java jette KettleMissingPluginsException-Pourquoi?


, j'ai créé une variété de transformations de données (*.fichiers ktr) qui fonctionnent parfaitement au démarrage à partir de l'interface GRAPHIQUE Spoon (PDI-CE 5.4.0.1-130; Windows 7).

J'essaie de les exécuter à partir de Java avec le code suivant (proche de l'exemple de code de la documentation):

KettleClientEnvironment.init();
TransMeta metaData = new TransMeta("C:\\examplepath\\test.ktr");

Trans transformation = new Trans(metaData);
transformation.execute(null);
transformation.waitUntilFinished();
...

Lors de l'exécution, j'obtiens l'exception suivante:

org.pentaho.di.core.exception.KettleMissingPluginsException: 
Missing plugins found while loading a transformation

Step : CsvInput
Step : XMLOutput
    at org.pentaho.di.trans.TransMeta.loadXML(TransMeta.java:2882)
    at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2718)
    at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2670)
    at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2647)
    at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2627)
    at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2592)
    at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2555)
    at (caller method in my code)

Comme je n'utilise aucun plugin mais uniquement des étapes natives (dans cet exemple CsvInput, XMLOutput), je ne comprends pas la raison de l'exception levée. Pourquoi est-il lancé et comment puis-je réparer le code à exécuter?

Est-ce que je manque peut-être des dépendances maven? J'utilise la suite de référentiel http://repository.pentaho.org/content/groups/omni/ et dépendances:

<dependency>
    <groupId>pentaho-kettle</groupId>
    <artifactId>kettle-core</artifactId>
    <version>5.4.0.1-130</version>
</dependency>
<dependency>
    <groupId>pentaho-kettle</groupId>
    <artifactId>kettle-engine</artifactId>
    <version>5.4.0.1-130</version>
</dependency>
<dependency>
    <groupId>pentaho-kettle</groupId>
    <artifactId>kettle-ui-swt</artifactId>
    <version>5.4.0.1-130</version>
</dependency>
<dependency>
    <groupId>pentaho-library</groupId>
    <artifactId>libformula</artifactId>
    <version>5.4.0.1-130</version>
</dependency>

Merci beaucoup d'avance pour vos réponses.

Author: Maximilian C., 2015-08-20

1 answers

J'ai accidentellement utilisé KettleClientEnvironment.init () mais j'aurais dû utiliser KettleEnvironment.initialisation(). Par conséquent, l'environnement n'a pas été correctement initialisé, ce qui a déclenché l'Exception. Wow. C'est une erreur de débutant :)

Le code corrigé, comme il peut également être trouvé dans les documents Kettle et l'exemple de Rishu:

KettleEnvironment.init();
TransMeta metaData = new TransMeta("C:\\examplepath\\test.ktr");

Trans transformation = new Trans(metaData);
transformation.execute(null);
transformation.waitUntilFinished();
...

Merci lufki et Rishu pour les commentaires et les pointeurs.

 2
Author: Maximilian C., 2015-08-24 10:10:28