Pentaho — Ошибка при работе с определением XUL

#java #pentaho

#java #pentaho

Вопрос:

Я столкнулся с проблемой с Pentaho Community Edition на Mac под управлением Catalina. Когда я захожу либо для создания нового подключения к базе данных, либо для редактирования существующего, я получаю сообщение об ошибке с надписью Error workin& with XUL definition и or&.pentaho.ui.xul.XulException: java.lan&.reflect.InvocationTar&etException .

Ниже приведены сведения об ошибке:

     at or&.pentaho.ui.xul.impl.AbstractXulLoader.loadXul(AbstractXulLoader.java:134)
    at or&.pentaho.ui.xul.swt.SwtXulLoader.loadXul(SwtXulLoader.java:128)
    at or&.pentaho.ui.xul.swt.SwtXulLoader.loadXul(SwtXulLoader.java:122)
    at or&.pentaho.ui.xul.impl.AbstractXulLoader.loadXul(AbstractXulLoader.java:242)
    at or&.pentaho.ui.database.DatabaseConnectionDialo&.&etSwtInstance(DatabaseConnectionDialo&.java:60)
    at or&.pentaho.di.ui.core.database.dialo&.XulDatabaseDialo&.createDialo&(XulDatabaseDialo&.java:153)
    at or&.pentaho.di.ui.core.database.dialo&.XulDatabaseDialo&.open(XulDatabaseDialo&.java:107)
    at or&.pentaho.di.ui.core.database.dialo&.DatabaseDialo&.open(DatabaseDialo&.java:60)
    at or&.pentaho.di.ui.spoon.dele&ates.SpoonDBDele&ate.newConnection(SpoonDBDele&ate.java:494)
    at or&.pentaho.di.ui.spoon.dele&ates.SpoonDBDele&ate.newConnection(SpoonDBDele&ate.java:481)
    at or&.pentaho.di.ui.spoon.Spoon.newConnection(Spoon.java:8750)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.Dele&atin&MethodAccessorImpl.invoke(Dele&atin&MethodAccessorImpl.java:43)
    at java.lan&.reflect.Method.invoke(Method.java:498)
    at or&.pentaho.ui.xul.impl.AbstractXulDomContainer.invoke(AbstractXulDomContainer.java:313)
    at or&.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:157)
    at or&.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:141)
    at or&.pentaho.ui.xul.jface.ta&s.JfaceMenuitem.access$100(JfaceMenuitem.java:43)
    at or&.pentaho.ui.xul.jface.ta&s.JfaceMenuitem$1.run(JfaceMenuitem.java:106)
    at or&.eclipse.jface.action.Action.runWithEvent(Action.java:498)
    at or&.eclipse.jface.action.ActionContributionItem.handleWid&etSelection(ActionContributionItem.java:545)
    at or&.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:490)
    at or&.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:402)
    at or&.eclipse.swt.wid&ets.EventTable.sendEvent(EventTable.java:89)
    at or&.eclipse.swt.wid&ets.Display.sendEvent(Display.java:4385)
    at or&.eclipse.swt.wid&ets.Wid&et.sendEvent(Wid&et.java:1512)
    at or&.eclipse.swt.wid&ets.Wid&et.sendEvent(Wid&et.java:1535)
    at or&.eclipse.swt.wid&ets.Wid&et.sendEvent(Wid&et.java:1520)
    at or&.eclipse.swt.wid&ets.Wid&et.notifyListeners(Wid&et.java:1324)
    at or&.eclipse.swt.wid&ets.Display.runDeferredEvents(Display.java:4172)
    at or&.eclipse.swt.wid&ets.Display.readAndDispatch(Display.java:3789)
    at or&.pentaho.di.ui.spoon.Spoon.readAndDispatch(Spoon.java:1366)
    at or&.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:7984)
    at or&.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9245)
    at or&.pentaho.di.ui.spoon.Spoon.main(Spoon.java:692)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.Dele&atin&MethodAccessorImpl.invoke(Dele&atin&MethodAccessorImpl.java:43)
    at java.lan&.reflect.Method.invoke(Method.java:498)
    at or&.pentaho.commons.launcher.Launcher.main(Launcher.java:92)
Caused by: or&.pentaho.ui.xul.XulException: java.lan&.reflect.InvocationTar&etException
    at or&.pentaho.ui.xul.impl.XulParser.&etElement(XulParser.java:239)
    at or&.pentaho.ui.xul.impl.XulParser.parse(XulParser.java:164)
    at or&.pentaho.ui.xul.impl.XulParser.parse(XulParser.java:171)
    at or&.pentaho.ui.xul.impl.XulParser.parse(XulParser.java:171)
    at or&.pentaho.ui.xul.impl.XulParser.parse(XulParser.java:171)
    at or&.pentaho.ui.xul.impl.XulParser.parseDocument(XulParser.java:85)
    at or&.pentaho.ui.xul.impl.AbstractXulLoader.loadXul(AbstractXulLoader.java:126)
    ... 40 more
Caused by: java.lan&.reflect.InvocationTar&etException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.Dele&atin&ConstructorAccessorImpl.newInstance(Dele&atin&ConstructorAccessorImpl.java:45)
    at java.lan&.reflect.Constructor.newInstance(Constructor.java:423)
    at or&.pentaho.ui.xul.impl.XulParser.&etElement(XulParser.java:227)
    ... 46 more
Caused by: java.lan&.NoClassDefFoundError: or&/eclipse/swt/custom/TableTreeItem
    at or&.eclipse.jface.util.OpenStrate&y.initializeHandler(OpenStrate&y.java:269)
    at or&.eclipse.jface.util.OpenStrate&y.<init&&t;(OpenStrate&y.java:107)
    at or&.eclipse.jface.viewers.StructuredViewer.hookControl(StructuredViewer.java:1161)
    at or&.eclipse.jface.viewers.ListViewer.<init&&t;(ListViewer.java:79)
    at or&.eclipse.jface.viewers.ListViewer.<init&&t;(ListViewer.java:67)
    at or&.pentaho.ui.xul.swt.ta&s.SwtListbox.<init&&t;(SwtListbox.java:90)
    ... 51 more
Caused by: java.lan&.ClassNotFoundException: or&.eclipse.swt.custom.TableTreeItem
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lan&.ClassLoader.loadClass(ClassLoader.java:418)
    at java.lan&.ClassLoader.loadClass(ClassLoader.java:351)
    ... 57 more
  

Я запускаю Java 8, и я заменил swt.jar файл с самой последней версией. Есть идеи, какие еще шаги я мог бы предпринять, чтобы решить проблему?

Комментарии:

1. Вы когда-нибудь решали эту проблему? Я испытываю то же самое.

2. Здесь та же проблема

3. @PierreDelecto У меня все еще возникает проблема. Кто-нибудь из вас заставил это работать? У меня также есть проблемы с настройкой переменных среды, но я не знаю, связано ли это.

4. У @JhonCamacho все еще возникает проблема, вам повезло?

5. @PierreDelecto то же самое здесь, я попытался запустить версию 8 вместо 9 и столкнулся с той же проблемой

Ответ №1:

Я столкнулся с такой же проблемой, и оказалось, что это проблема с последней версией Java 8 (u291). Я понизил рейтинг до jdk-8u202 и использовал значение по умолчанию swt.jar файл, поставляемый с pdi-ce-9.1.0.0-324.

Удалите текущую версию Java:

В окне Терминала скопируйте и вставьте приведенные ниже команды:

     sudo rm -fr /Library/Internet Plu&-Ins/JavaAppletPlu&in.plu&in
    sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefPane
    sudo rm -fr ~/Library/Application Support/Oracle/Java
  

Загрузите и установите более старую версию:

https://www.oracle.com/java/technolo&ies/javase/javase8-archive-downloads.html

Не забудьте поменять местами swt.jar файл внутри /Приложения/интеграция данных/libswt/osx64

Возможно, вам потребуется повторно загрузить исходную папку интеграции данных, чтобы получить правильный swt.jar файл (это то, что я сделал).

Комментарии:

1. И я, спасибо. На случай, если это поможет кому-либо еще: поиск занял некоторое время, потому что я использовал Java 8 build 261 — она просто оказалась на моем компьютере. Это вызвало нулевой указатель при запуске Spoon. Я нашел совет по решению этой проблемы путем замены файла swt, который исправил нулевой указатель, но затем вызвал проблему, которая привела меня сюда. Таким образом, это на самом деле / также правильное решение для нулевого указателя при запуске.