2017-01-20 10 views
1

В настоящее время у меня есть преобразование, включающее шаг UserDefinedJavaClass. Это работает как ожидается в Spoon. Когда я пытаюсь запустить эту трансформацию как часть веб-приложения с помощью баночки Чайник я получаю следующее сообщение об ошибке:Ошибка инициализации UserDefinedJavaClass

017/01/20 10:04:56 - Load questionnaires.0 - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : Error initializing UserDefinedJavaClass: 
2017/01/20 10:04:56 - Load questionnaires.0 - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : org.pentaho.di.core.exception.KettleException: 
2017/01/20 10:04:56 - Load questionnaires.0 - null 
2017/01/20 10:04:56 - Load questionnaires.0 - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : Error initializing step [Load questionnaires] 
2017/01/20 10:04:57 - evalue-di-risk - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : Step [Load questionnaires.0] failed to initialize! 

Поскольку это работает в ложке, я могу только предположить, что мне не хватает библиотеки. Я уже включил чайник, ядро-чайник (чайник версии 6.1.0.1-196) и janino, которые, как я думал, были все, что мне нужно для этого.

EDIT Я взял каждую банку из папки Spoon lib и выбросил ее в мой webapp, и это тоже не сработало.

EDIT AGAIN Оказалось, что проблема связана с UserDefinedJavaClass, а вход таблицы, содержащий переменные, которые должны быть заменены во время преобразования, не работает и вызывает указанную выше ошибку.

+0

Сразу отметим: У меня была аналогичная проблема при запуске преобразования в отчетах: если значения параметров соединения по умолчанию не приводят к данному соединению, то udjc шаг не удается. Похоже, что шаг udjc сначала проверяется или компилируется с параметрами по умолчанию, а затем, если соединение выполнено успешно, вставляются фактические значения параметров. Я закончил тем, что переписал свою логику с java на javascript. Но если вы вызываете преобразование из другого java-кода, вы можете попытаться изменить рабочий процесс pdi по умолчанию, например. вручную задайте значения параметров по умолчанию до инициализации преобразования. – user4637357

+0

Возможно, мне тоже придется это сделать. Это действительное соединение, и переменные находятся в моей инструкции SQL. –

ответ

0

вы не можете сделать это, вы должны использовать SDK API

и компилировать из приложения.

http://wiki.pentaho.com/display/EAI/The+PDI+SDK

+0

Я, вероятно, не очень хорошо объяснял себя, так как я действительно могу делать то, что я прошу. Оказывается, проблема состоит в том, что у пользователя есть UserDefinedJavaClass, и вход таблицы, содержащий переменные, кажется, не работает. –

+0

Я не знаю, что вы имеете в виду, «свалил его в мой webapp, и это тоже не сработало». WebApp? вы не можете сделать это с помощью трансформаций чайника. – jipipayo