2014-12-23 4 views
1

주전자 변환을 실행하기 위해 자바 앱 (파일럿)을 만들었습니다. 그것은 매우 간단합니다. 나는 main 메소드 만 가지고 있는데, .ktr 파일을 얻고 이것을 실행합니다.자바로 주전자 변환

public static void main(String[] args) 
    { 
     try { 
      KettleEnvironment.init(); 
      TransMeta transMeta = new TransMeta("C:\\user\\car.ktr"); 
      Trans trans = new Trans(transMeta); //create new transformation object 
      trans.execute(null); 
      trans.waitUntilFinished(); 
     } catch (KettleException e) { 
      e.printStackTrace(); 
     } 
    } 

문제는 내가 이것을 실행할 때 예외가 발생한다는 것입니다.

2014/12/23 08:24:54 - Table output.0 - ERROR (version 5.0.5, build 1 from 2014-03-21_17-56-23 by buildguy) : Error initializing step [Table output] 
2014/12/23 08:24:54 - Table output.0 - ERROR (version 5.0.5, build 1 from 2014-03-21_17-56-23 by buildguy) : java.lang.AbstractMethodError 
2014/12/23 08:24:54 - Table output.0 - at org.pentaho.di.core.logging.LoggingObject.grabLoggingObjectInformation(LoggingObject.java:136) 
2014/12/23 08:24:54 - Table output.0 - at org.pentaho.di.core.logging.LoggingObject.<init>(LoggingObject.java:56) 
2014/12/23 08:24:54 - Table output.0 - at org.pentaho.di.core.logging.LoggingRegistry.registerLoggingSource(LoggingRegistry.java:70) 
2014/12/23 08:24:54 - Table output.0 - at org.pentaho.di.core.logging.LogChannel.<init>(LogChannel.java:74) 
2014/12/23 08:24:54 - Table output.0 - at org.pentaho.di.core.database.Database.<init>(Database.java:191) 
2014/12/23 08:24:54 - Table output.0 - at org.pentaho.di.trans.steps.tableoutput.TableOutput.init(TableOutput.java:598) 
2014/12/23 08:24:54 - Table output.0 - at org.pentaho.di.trans.step.StepInitThread.run(StepInitThread.java:65) 
2014/12/23 08:24:54 - Table output.0 - at java.lang.Thread.run(Unknown Source) 
2014/12/23 08:24:54 - car - ERROR (version 5.0.5, build 1 from 2014-03-21_17-56-23 by buildguy) : Step [Table output.0] failed to initialize! 
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:1068) 
    at org.pentaho.di.trans.Trans.execute(Trans.java:578) 
    at neoway.com.App.main(App.java:16) 

이 응용 프로그램은 maven과 함께 만들었으며 이러한 종속성이 있습니다.

<dependency> 
     <groupId>pentaho-kettle</groupId> 
     <artifactId>kettle-engine</artifactId> 
     <version>5.0.5</version> 
    </dependency> 
    <dependency> 
     <groupId>pentaho-kettle</groupId> 
     <artifactId>kettle-db</artifactId> 
     <version>4.4.3.3</version> 
    </dependency> 
    <dependency> 
     <groupId>pentaho-kettle</groupId> 
     <artifactId>kettle-core</artifactId> 
     <version>5.0.5</version> 
    </dependency> 
    <dependency> 
     <groupId>pentaho-kettle</groupId> 
     <artifactId>kettle-ui-swt</artifactId> 
     <version>5.0.5</version> 
    </dependency> 
    <dependency> 
     <groupId>pentaho-library</groupId> 
     <artifactId>libformula</artifactId> 
     <version>5.0.5</version> 
    </dependency> 

아무 문제가 있습니까?

감사합니다.

+0

Catalina.out 및 pentaho 로그 파일을 첨부 할 수 있다면 더 좋습니다. –

답변

0

또한 데이터베이스 종속성을 pom.xml 파일에 추가해야합니다. 변환 (사용자가 실행중인 변환)이 데이터베이스 연결을 가지고 있으므로, 해당 jar를 Eclipse 작업 영역으로 가져와야합니다. Else eclipse는 예외를 throw합니다.

pentaho wikithis 블로그를 확인하십시오. postgresql을 데이터베이스 연결로 사용했습니다. 데이터베이스 당 maven을 수정하십시오.

희망 하시겠습니까?