首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Java中运行*.ktr会抛出KettleMissingPluginsException -为什么?

在Java中运行*.ktr会抛出KettleMissingPluginsException -为什么?
EN

Stack Overflow用户
提问于 2015-08-20 19:04:01
回答 1查看 943关注 0票数 3

我创建了各种数据转换(*.ktr文件),这些转换在从Spoon (PDI-CE5.4.0.1-130;Windows7)启动时运行得很好。

我尝试使用以下代码(接近文档中的示例代码)从Java运行它们:

代码语言:javascript
运行
复制
KettleClientEnvironment.init();
TransMeta metaData = new TransMeta("C:\\examplepath\\test.ktr");

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

执行时,我会得到以下异常:

代码语言:javascript
运行
复制
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)

由于我不使用任何插件,而只使用本机步骤(在本例中为CsvInput,XMLOutput),所以我不理解抛出异常的原因。为什么会抛出它,以及如何修复要运行的代码?

我是不是缺少了maven依赖关系?我使用以下存储库http://repository.pentaho.org/content/groups/omni/和依赖项:

代码语言:javascript
运行
复制
<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>

提前谢谢你的回答。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-24 10:10:28

我无意中使用了KettleClientEnvironment.init(),但我应该使用KettleEnvironment.init()。因此,环境没有被正确初始化,从而触发了异常。哇。这是菜鸟的错误:)

修正后的代码,也可以在Kettle文档和Rishu的示例中找到:

代码语言:javascript
运行
复制
KettleEnvironment.init();
TransMeta metaData = new TransMeta("C:\\examplepath\\test.ktr");

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

谢谢卢夫基和瑞舒的评论和指点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32126318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档