1

我在 Ububntu 14.04 上使用 PDI 4.4.0:

uname -a:
Linux LT0124 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

当我尝试使用 Microsoft Excel Writer Step 生成 Excel 文件时,出现以下错误:

2014/05/07 23:39:26 - Microsoft Excel Writer.0 - ERROR (version 4.4.0-stable, build 17588 from 2012-11-21 16.02.21 by buildguy) : Unexpected error
2014/05/07 23:39:26 - Microsoft Excel Writer.0 - ERROR (version 4.4.0-stable, build 17588 from 2012-11-21 16.02.21 by buildguy) : org.pentaho.di.core.exception.KettleException: 
2014/05/07 23:39:26 - Microsoft Excel Writer.0 - ERROR (version 4.4.0-stable, build 17588 from 2012-11-21 16.02.21 by buildguy) : org.apache.commons.vfs.FileSystemException: File closed.
2014/05/07 23:39:26 - Microsoft Excel Writer.0 - ERROR (version 4.4.0-stable, build 17588 from 2012-11-21 16.02.21 by buildguy) : File closed.
2014/05/07 23:39:26 - Microsoft Excel Writer.0 - ERROR (version 4.4.0-stable, build 17588 from 2012-11-21 16.02.21 by buildguy) : 
2014/05/07 23:39:26 - Microsoft Excel Writer.0 - ERROR (version 4.4.0-stable, build 17588 from 2012-11-21 16.02.21 by buildguy) :   at org.pentaho.di.trans.steps.excelwriter.ExcelWriterStep.closeOutputFile(ExcelWriterStep.java:225)
2014/05/07 23:39:26 - Microsoft Excel Writer.0 - ERROR (version 4.4.0-stable, build 17588 from 2012-11-21 16.02.21 by buildguy) :   at org.pentaho.di.trans.steps.excelwriter.ExcelWriterStep.processRow(ExcelWriterStep.java:172)
2014/05/07 23:39:26 - Microsoft Excel Writer.0 - ERROR (version 4.4.0-stable, build 17588 from 2012-11-21 16.02.21 by buildguy) :   at org.pentaho.di.trans.step.RunThread.run(RunThread.java:50)
2014/05/07 23:39:26 - Microsoft Excel Writer.0 - ERROR (version 4.4.0-stable, build 17588 from 2012-11-21 16.02.21 by buildguy) :   at java.lang.Thread.run(Thread.java:745)
2014/05/07 23:39:26 - Microsoft Excel Writer.0 - ERROR (version 4.4.0-stable, build 17588 from 2012-11-21 16.02.21 by buildguy) : Caused by: org.apache.commons.vfs.FileSystemException: File closed.
2014/05/07 23:39:26 - Microsoft Excel Writer.0 - ERROR (version 4.4.0-stable, build 17588 from 2012-11-21 16.02.21 by buildguy) :   at org.apache.commons.vfs.util.MonitorOutputStream.assertOpen(Unknown Source)
2014/05/07 23:39:26 - Microsoft Excel Writer.0 - ERROR (version 4.4.0-stable, build 17588 from 2012-11-21 16.02.21 by buildguy) :   at org.apache.commons.vfs.util.MonitorOutputStream.flush(Unknown Source)
2014/05/07 23:39:26 - Microsoft Excel Writer.0 - ERROR (version 4.4.0-stable, build 17588 from 2012-11-21 16.02.21 by buildguy) :   at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:141)
2014/05/07 23:39:26 - Microsoft Excel Writer.0 - ERROR (version 4.4.0-stable, build 17588 from 2012-11-21 16.02.21 by buildguy) :   at java.io.FilterOutputStream.close(FilterOutputStream.java:158)
2014/05/07 23:39:26 - Microsoft Excel Writer.0 - ERROR (version 4.4.0-stable, build 17588 from 2012-11-21 16.02.21 by buildguy) :   at org.pentaho.di.trans.steps.excelwriter.ExcelWriterStep.closeOutputFile(ExcelWriterStep.java:223)
2014/05/07 23:39:26 - Microsoft Excel Writer.0 - ERROR (version 4.4.0-stable, build 17588 from 2012-11-21 16.02.21 by buildguy) :   ... 3 more

当我在 Ubuntu 12.04 和其他机器上尝试相同的工作但步骤失败时,一切都很好。我确信问题出在我的新 Ubuntu 14.04 版本上,可能与我使用的最新 Java 版本有关:

java -version java version "1.8.0_05" Java(TM) SE Runtime Environment (build 1.8.0_05-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, 混合模式)

你知道可能是什么原因吗?

4

3 回答 3

2

这是使用 Java 8 和 Excel Writer 步骤写入 XLSX 文件的已知错误。在修复之前,您必须降级到 Java 7 或 6。

于 2015-03-06T20:02:30.773 回答
0

据此,您的问题可能是使用的 excel 文件版本与根据任务配置应有的不同。

于 2014-05-09T20:27:51.923 回答
0

正如上面 Dave 所述,除了 Java RE 版本之外,该问题还与 .xlsx 格式明确相关。

因此,如果您并不真正依赖 .xlsx 格式的任何内容,那么切换到 2007 年之前版本的 Excel 格式(即 .xls 扩展名)可能会更容易。对我来说(使用 OpenJDK RE build 1.8.0_45-internal-b14 运行 Ubuntu 15.04)它在 .xls 格式下运行良好,但在 .xlsx 上运行失败

于 2015-10-20T17:30:46.670 回答