在pentaho釜中使用函数时出错

在pentaho釜中使用函数时出错,pentaho,kettle,Pentaho,Kettle,我在壶中的转换中添加了一个公式。在该公式的属性中,当我单击公式文本字段时,我得到一个错误: org.eclipse.swt.SWTError: No more handles [MOZILLA_FIVE_HOME=''] (java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: no swt-mozilla-gtk-3740 in java.library.path no swt-mozilla-gtk in j

我在壶中的转换中添加了一个公式。在该公式的属性中,当我单击公式文本字段时,我得到一个错误:

org.eclipse.swt.SWTError: No more handles [MOZILLA_FIVE_HOME=''] (java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
no swt-mozilla-gtk-3740 in java.library.path
no swt-mozilla-gtk in java.library.path
/home/ron/.swt/lib/linux/x86/libswt-mozilla-gtk-3740.so: libxpcom.so: cannot open shared object file: No such file or directory
Can't load library: /home/ron/.swt/lib/linux/x86/libswt-mozilla-gtk.so)
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.browser.Mozilla.initMozilla(Unknown Source)
at org.eclipse.swt.browser.Mozilla.create(Unknown Source)
at org.eclipse.swt.browser.Browser.<init>(Unknown Source)
at org.pentaho.libformula.ui.editor.LibFormulaEditor.<init>(LibFormulaEditor.java:198)
at org.pentaho.di.ui.trans.steps.formula.FormulaDialog$3.widgetSelected(FormulaDialog.java:219)
at org.pentaho.di.ui.core.widget.TableView.editText(TableView.java:1940)
at org.pentaho.di.ui.core.widget.TableView.edit(TableView.java:1895)
at org.pentaho.di.ui.core.widget.TableView.edit(TableView.java:1867)
at org.pentaho.di.ui.core.widget.TableView.editSelected(TableView.java:1326)
at org.pentaho.di.ui.core.widget.TableView.access$3000(TableView.java:107)
at org.pentaho.di.ui.core.widget.TableView$26.mouseDown(TableView.java:949)
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.trans.steps.formula.FormulaDialog.open(FormulaDialog.java:282)
at org.pentaho.di.ui.spoon.delegates.SpoonStepsDelegate.editStep(SpoonStepsDelegate.java:136)
at org.pentaho.di.ui.spoon.Spoon.editStep(Spoon.java:7835)
at org.pentaho.di.ui.spoon.trans.TransGraph.editStep(TransGraph.java:2749)
at org.pentaho.di.ui.spoon.trans.TransGraph.mouseDoubleClick(TransGraph.java:705)
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:1221)
at org.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:7044)
at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:8304)
at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:580)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.pentaho.commons.launcher.Launcher.main(Launcher.java:134)
Caused by: java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
no swt-mozilla-gtk-3740 in java.library.path
no swt-mozilla-gtk in java.library.path
/home/ron/.swt/lib/linux/x86/libswt-mozilla-gtk-3740.so: libxpcom.so: cannot open shared object file: No such file or directory
Can't load library: /home/ron/.swt/lib/linux/x86/libswt-mozilla-gtk.so

at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
... 35 more
org.eclipse.swt.swt恐怖:没有更多句柄[MOZILLA_FIVE_HOME=''](java.lang.unsatifiedLinkError:无法加载swt库。原因:
java.library.path中没有swt-mozilla-gtk-3740
java.library.path中没有swt mozilla gtk
/home/ron/.swt/lib/linux/x86/libswt-mozilla-gtk-3740.so:libxpcom.so:无法打开共享对象文件:没有这样的文件或目录
无法加载库:/home/ron/.swt/lib/linux/x86/libswt mozilla gtk.so)
位于org.eclipse.swt.swt.error(未知源)
位于org.eclipse.swt.browser.Mozilla.initMozilla(未知源)
位于org.eclipse.swt.browser.Mozilla.create(未知源)
位于org.eclipse.swt.browser.browser。(未知来源)
位于org.pentaho.libformula.ui.editor.LibFormulaEditor。(LibFormulaEditor.java:198)
位于org.pentaho.di.ui.trans.steps.formula.FormulaDialog$3.widgetSelected(FormulaDialog.java:219)
位于org.pentaho.di.ui.core.widget.TableView.editText(TableView.java:1940)
位于org.pentaho.di.ui.core.widget.TableView.edit(TableView.java:1895)
位于org.pentaho.di.ui.core.widget.TableView.edit(TableView.java:1867)
位于org.pentaho.di.ui.core.widget.TableView.editSelected(TableView.java:1326)
位于org.pentaho.di.ui.core.widget.TableView.access$3000(TableView.java:107)
位于org.pentaho.di.ui.core.widget.TableView$26.mouseDown(TableView.java:949)
位于org.eclipse.swt.widgets.TypedListener.handleEvent(未知源)
位于org.eclipse.swt.widgets.EventTable.sendEvent(未知源)
位于org.eclipse.swt.widgets.Widget.sendEvent(未知源)
位于org.eclipse.swt.widgets.Display.runDeferredEvents(未知源)
位于org.eclipse.swt.widgets.Display.readAndDispatch(未知源)
在org.pentaho.di.ui.trans.steps.formula.FormulaDialog.open(FormulaDialog.java:282)上
位于org.pentaho.di.ui.spoon.delegates.spoonstepsdegate.editStep(spoonstepsdegate.java:136)
位于org.pentaho.di.ui.spoon.spoon.editStep(spoon.java:7835)
位于org.pentaho.di.ui.spoon.trans.incraph.editStep(incraph.java:2749)
位于org.pentaho.di.ui.spoon.trans.incraph.mouseDoubleClick(incraph.java:705)
位于org.eclipse.swt.widgets.TypedListener.handleEvent(未知源)
位于org.eclipse.swt.widgets.EventTable.sendEvent(未知源)
位于org.eclipse.swt.widgets.Widget.sendEvent(未知源)
位于org.eclipse.swt.widgets.Display.runDeferredEvents(未知源)
位于org.eclipse.swt.widgets.Display.readAndDispatch(未知源)
在org.pentaho.di.ui.spoon.spoon.readAndDispatch(spoon.java:1221)上
位于org.pentaho.di.ui.spoon.spoon.waitForDispose(spoon.java:7044)
位于org.pentaho.di.ui.spoon.spoon.start(spoon.java:8304)
位于org.pentaho.di.ui.spoon.spoon.main(spoon.java:580)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:606)
位于org.pentaho.commons.launcher.launcher.main(launcher.java:134)
原因:java.lang.UnsatifiedLinkError:无法加载SWT库。原因:
java.library.path中没有swt-mozilla-gtk-3740
java.library.path中没有swt mozilla gtk
/home/ron/.swt/lib/linux/x86/libswt-mozilla-gtk-3740.so:libxpcom.so:无法打开共享对象文件:没有这样的文件或目录
无法加载库:/home/ron/.swt/lib/linux/x86/libswt-mozilla-gtk.so
位于org.eclipse.swt.internal.Library.loadLibrary(未知源)
位于org.eclipse.swt.internal.Library.loadLibrary(未知源)
... 35多
当我检查
/home/ron/.swt/lib/linux/
时,它有文件
libswt-mozilla-gtk-3740。所以


请帮助我找到解决方案

有几个问题可能会阻止此功能正常工作。 根本原因是Pentaho使用的SWT功能需要安装在操作系统中的两个浏览器之一。请参阅此常见问题解答()。 在我的例子中,我们必须通过在java命令行中添加VM选项来选择使用WebKitGTK(webkit)还是Mozilla Firefox(Mozilla):

-Dorg.eclipse.swt.browser.DefaultType=mozilla

在我的系统Ubuntu14.04中,webkit浏览器在libsoup中导致错误,因此我需要将其设置为mozilla。有关参考信息,请参阅Eclipse中的libsoup错误,它也使用SWT,类似于Pentaho

然后,我们需要mozilla firefox出现在系统中,还需要mozilla XUL runner库。首先安装firefox:

apt get install firefox

安装XUL runner 1.9.2,因为据说2.0.0或更高版本不兼容(请参阅)

wgethttp://ftp.mozilla.org/pub/mozilla.org/xulrunner/nightly/2012/03/2012-03-02-03-32-11-mozilla-1.9.2/xulrunner-1.9.2.28pre.en-US.linux-x86_64.tar.bz2

tar-xjf xulrunner-1.9.2.28pre.en US.linux-x86_64.tar.bz2

mv xulrunner/opt/xulrunner-1.9.2

使用以下VM选项配置xulrunner路径:

-Dorg.eclipse.swt.browser.XULRunnerPath=/opt/xulrunner-1.9.2

我们还需要配置LD_LIBRARY_PATH和MOZILLA_FIVE_HOME以指向xulrunner:


MOZILLA_FIVE_HOME=/opt/xulrunner-1.9.2
LD_LIBRARY_PATH=${MOZILLA_FIVE_HOME}:${LD_LIBRARY_PATH}

spoon.sh中的最终设置为:

(spoon.sh,关于第13行)

MOZILLA_FIVE_HOME=/opt/xulrunner-1.9.2
LD_LIBRARY_PATH=${MOZILLA_FIVE_HOME}:${LD_LIBRARY_PATH}

(spoon.sh,关于第184行)
if[-z“$PENTAHO_DI_JAVA_OPTIONS”];然后
PENTAHO_DI_JAVA_OPTIONS=“-Xmx512m-XX:MaxPermSize=256m-Dorg.eclipse.swt.browser.DefaultType=mozilla-Dorg.eclipse.swt.browser.XULRunnerPath=/opt/xulrunner-1.9.2”

fi

有几个问题可能会阻止此功能工作。 根本原因是Pentaho使用的SWT功能需要安装在operati中的两个浏览器之一