javaamazon-s3pentahokettle

Pentaho kettle Can't run transformation due to plugin missing


I trying to execute transformation file using java , transformation get data from database and print data to file in s3 by s3 output file step.it works fine when run by spoon ,but when trying to run in java application get the following error

Can't run transformation due to plugin missing

java code

    KettleEnvironment.init();
    URL ktrUrl = PipelineResource.class.getClassLoader().getResource(tempFile.getAbsolutePath());
    TransMeta transMeta = new TransMeta(ktrUrl.getPath());
    Trans trans = new Trans(transMeta);
    trans.execute(new String[]{});
    trans.waitUntilFinished();
    if (trans.getErrors() > 0) {

full stack trace

  2017/06/29 12:46:11 - S3 File Output.0 - ERROR (version 7.0.0.6-95, build
1 from 2017-05-23 03.01.13 by buildguy) : Can't run transformation due to
plugin missing2017/06/29 12:46:11 - S3 File Output.0 - ERROR (version
7.0.0.6-95, build 1 from 2017-05-23 03.01.13 by buildguy) : Error
initializing step [S3 File Output]
2017/06/29 12:46:11 - transformation1 - ERROR (version 7.0.0.6-95, build 1
from 2017-05-23 03.01.13 by buildguy) : Step [S3 File Output.0] failed to
initialize!
2017/06/29 12:46:11 - data from asset.0 - Finished reading query, closing
connection.
2017-06-29 12:46:11.048 ERROR 22396 --- [ XNIO-2 task-2] 
com.innvo.aop.logging.LoggingAspect : Exception in 
com.innvo.web.rest.PipelineResource.runPipeline() with cause = 'NULL' and 
exception = '
We failed to initialize at least one step. Execution can not begin!'
org.pentaho.di.core.exception.KettleException: 
We failed to initialize at least one step. Execution can not begin!
at org.pentaho.di.trans.Trans.prepareExecution(Trans.java:1157)
at org.pentaho.di.trans.Trans.execute(Trans.java:627)
at com.innvo.web.rest.PipelineResource.runPipeline(PipelineResource.java:201)
at com.innvo.web.rest.PipelineResource$$FastClassBySpringCGLIB$$81033db7.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:85)
at com.innvo.aop.logging.LoggingAspect.logAround(LoggingAspect.java:85)
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.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629)

Solution

  • works by add plugin path before

      KettleEnvironment.init();
    

    add plugins path

      StepPluginType.getInstance().getPluginFolders().add(new PluginFolder("/home/ali/data-integration/plugins", false, true));