在openKM中使用到Openoffcie+Jodconvert实现WORD或Excel文件转换成PDF格式的功能,但是最近上传上一些大小为3M左右的Excel文件后,预览时总是 出现如下错误:
Caused by: com.openkm.core.ConversionException: Error converting document: task did not complete within timeout
at com.openkm.util.DocConverter.convert(DocConverter.java:279)
at com.openkm.util.DocConverter.doc2pdf(DocConverter.java:327)
... 46 more
从字面上可以理解是在转换过程中超时了,解决办法是在启动OpenOffice服务是初始化下askExecutionTimeout参数的值,通过了解一般设置如下值:
DefaultOfficeManagerConfiguration configuration = new DefaultOfficeManagerConfiguration();
configuration.setOfficeHome(OFFICE_HOME);// 设置OpenOffice.org安装目录
// 设置转换端口,默认为8100
configuration.setPortNumbers(port);
// 设置任务执行超时为5分钟,这里就是导致转换超时的配置
configuration.setTaskExecutionTimeout(1000 * 60 * 5L);
// 设置任务队列超时为24小时
configuration.setTaskQueueTimeout(1000 * 60 * 60 * 24L);
officeManager = configuration.buildOfficeManager();
officeManager.start(); // 启动服务
通过如上设置问题解决。