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)
works by add plugin path before
KettleEnvironment.init();
add plugins path
StepPluginType.getInstance().getPluginFolders().add(new PluginFolder("/home/ali/data-integration/plugins", false, true));