【问题标题】:Pentaho 6 Spoon ErrorPentaho 6 勺子错误
【发布时间】:2016-09-08 10:53:02
【问题描述】:

我使用 Pentaho 6 (6.0.1.0-386)。

我的系统是 Ubuntu 14.04 LTS Linux LT0124 3.13.0-95-generic #142-Ubuntu SMP Fri Aug 12 17:00:09 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux Java版本: java version "1.8.0_101" Java(TM) SE Runtime Environment (build 1.8.0_101-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode) 我能够打开 Pentaho 并选择特定的转换。但是当我尝试执行它时,我收到以下错误:

Spoon 发生意外错误:

org.pentaho.di.trans.TransMeta.isAlwaysShowRunOptions()Z
java.lang.NoSuchMethodError: 
org.pentaho.di.trans.TransMeta.isAlwaysShowRunOptions()Z
at org.pentaho.di.ui.spoon.Spoon.executeFile(Spoon.java:8497)
at org.pentaho.di.ui.spoon.Spoon.runFile(Spoon.java:8470)
at org.pentaho.di.ui.spoon.trans.TransGraph.runTransformation(TransGraph.java:3376)
at org.pentaho.di.ui.spoon.trans.TransGraph$12.widgetSelected(TransGraph.java:1727)
at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
at org.pentaho.di.ui.spoon.Spoon.readAndDispatch(Spoon.java:1347)
at org.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:7989)
at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9269)
at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:662)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.pentaho.commons.launcher.Launcher.main(Launcher.java:92)

你能告诉我根本原因是什么吗?

【问题讨论】:

    标签: pentaho kettle pentaho-spoon


    【解决方案1】:

    这是 jar 版本冲突。查看“kettle-engine-6.1-XXX.jar”,其中 6.1 是发布版本。在你的情况下应该不低于 6.0。

    上面提到的方法

    org.pentaho.di.trans.TransMeta.isAlwaysShowRunOptions()Z java.lang.NoSuchMethodError: 
    

    ...从 TransMeta 移动到 AbstractMeta 类,所以在旧 jar 中 TransMeta 没有这样的方法(如果移动到抽象类) - 所以旧 jar 有这样的堆栈跟踪。

    Here历史

    【讨论】:

    • 您好 Dzmitry,不确定我是否了解如何解决问题。在哪里可以找到这个kettle-engine-6.1-XXX.jar 文件?我应该下载 Pentaho PDI 6.0 吗?
    • 找到您启动 PDI 的文件夹,然后导航到文件夹 lib,然后搜索前缀为kettle-engine-XXX.jar 的 jar 并在此处发布以确保您使用正确的版本。我建议重新下载或重新安装数据集成,因为如果您有一个 jar 版本冲突,则可能还有其他版本。您是否手动更改 /lib 文件夹中的 jar?
    • 好的,看起来我将旧的 jar 文件复制到了 lib 文件夹,因为我有新的和旧的:kettle-engine-6.0.1.0-386.jarkettle-engine-6.1.0.1-196 .jar 水壶引擎测试-6.1.0.1-196.jar
    • 感谢您的帮助 Dzmitry!
    • 如果你有 2 个不同版本的相同 jar,永远不知道哪一个会被 java 类加载器加载。 jar 名称末尾的 386/196 是来自 ci 作业的构建编号。那根本不是“稳定的官方”版本。如果您想在这里表示感谢,请投票。
    猜你喜欢
    • 2020-12-13
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多