Pentaho 水壶与 Java 的集成

在这里,我正在尝试从 Java 执行转换。Java代码是:


public class PDI {


    public static void main(String[] args) {

        // TODO Auto-generated method stub


        try {

            KettleEnvironment.init();

            System.out.println("1");

            //StepLoader.init();

            EnvUtil.environmentInit();

            System.out.println("2");

            TransMeta metaData = new TransMeta("D:/pdi/external/ExcelSheet/person.ktr");

            System.out.println("3");

           Trans trans = new Trans( metaData );

           System.out.println("4");

           trans.execute(null);

           System.out.println("5");

          trans.waitUntilFinished();

          System.out.println("6");

            if ( trans.getErrors() > 0 ) {

                System.out.print( "Error Executing transformation" );

            }


        } catch (KettleException e) {


             e.printStackTrace();

        }

}


    }

但我收到此错误:


1

2

3

4

2018/10/05 21:04:31 - person - Dispatching started for transformation [person]

5

java.lang.NoSuchMethodError: org.apache.poi.ss.usermodel.Cell.getCellType()I

    at org.pentaho.di.trans.steps.excelinput.poi.PoiCell.getType(PoiCell.java:43)child index = 0, logging object : org.pentaho.di.core.logging.LoggingObject@5789a7e2 parent=718e171d-3be6-4174-a9d0-7ce8c54b2fb3

2018/10/05 21:04:32 - Microsoft Excel Input.0 - Finished processing (I=0, O=0, R=0, W=0, U=0, E=1)


    at org.pentaho.di.trans.steps.excelinput.ExcelInput.fillRow(ExcelInput.java:138)

    at org.pentaho.di.trans.steps.excelinput.ExcelInput.getRowFromWorkbooks(ExcelInput.java:665)

    at org.pentaho.di.trans.steps.excelinput.ExcelInput.processRow(ExcelInput.java:471)

    at org.pentaho.di.trans.step.RunThread.run(RunThread.java:60)


米脂
浏览 269回答 1
1回答

慕哥9229398

因此,您的转换涉及输入 Excel 步骤。此步骤基于 Apache poi 库。1) 确保您的转换在勺子中运行。2) 确保 poi-.jar 在您的 java 类路径上。你会在你的发行版附带的 lib 目录中找到这个 jar。并且为了避免在稍后阶段出现这种意外,您可能会发现将所有这些库包含在您的类路径中很有用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java