Pentaho 6 勺子错误
Posted
技术标签:
【中文标题】Pentaho 6 勺子错误【英文标题】:Pentaho 6 Spoon Error 【发布时间】: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)
你能告诉我根本原因是什么吗?
【问题讨论】:
【参考方案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 作业的构建编号。那根本不是“稳定的官方”版本。如果您想在这里表示感谢,请投票。以上是关于Pentaho 6 勺子错误的主要内容,如果未能解决你的问题,请参考以下文章