当前位置:编程学习 > JAVA >>

OpenOffice多线程转换问题,求资料

java 调用OpenOffice在linux下执行文件转化,多线程执行,总有一批会挂掉,转换失败,socket通讯有什么较好的方法改善吗?
package com.jodconvert.socket;

import java.io.File;

import org.artofsolving.jodconverter.OfficeDocumentConverter;
import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;
import org.artofsolving.jodconverter.office.OfficeManager;

/**
 * 文件转换工具类 主要能将offcie txt类型文件转化成 pdf
 * 
 * @author parow 2013-6-8下午03:54:50
 * 
 */
public class OpenOfficeTools {


private static OfficeManager officeManager;

private static OpenOfficeTools instance = new OpenOfficeTools();


// 设置任务执行超时时间, 分钟为单位
// private static final long TASK_EXECUTION_TIMEOUT = 1000 * 60 * 1L *
private static final long TASK_EXECUTION_TIMEOUT = 1000 * 60 * 1L * 1;

// 设置任务队列超时时间,分钟为单位
// private static final long TASK_QUEUE_TIMEOUT = 1000 * 60 * 1L *
private static final long TASK_QUEUE_TIMEOUT = 1000 * 60 * 1L * 1;

public static OpenOfficeTools getInstance() {
return instance;
}

public static boolean convert2PDF(File inputFile,File pdfFile) {

startService();

OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager);

try {
converter.convert(inputFile, pdfFile);

} catch (Exception e) {
System.out.println("exception:"+e.getMessage());
}


stopService();

return pdfFile.isFile();
}

/**
 * 启动openoffice服务
 */
private static void startService() {
DefaultOfficeManagerConfiguration configuration = new DefaultOfficeManagerConfiguration();
// setProcessManager
try {
// 设置OpenOffice.org安装目录
configuration.setOfficeHome("C:\\Program Files (x86)\\OpenOffice.org 3");
// 设置转换端口,默认为8100
// configuration.setPortNumbers(new int[] { 8100, 8101, 8102, 8103 });
configuration.setPortNumbers(8100);
// 设置任务执行超时时间
configuration.setTaskExecutionTimeout(TASK_EXECUTION_TIMEOUT);
// 设置任务队列超时时间 1000 * 60 * 60 * 24L(24h)
configuration.setTaskQueueTimeout(TASK_QUEUE_TIMEOUT);
officeManager = configuration.buildOfficeManager();
officeManager.start(); // 启动服务
} catch (Exception ce) {
// log.error(ce.getMessage(), ce);
ce.printStackTrace();
}
}

/**
 * 关闭openoffice服务
 */
private static void stopService() {
if (officeManager != null) {
officeManager.stop();
}
}
}

Java OpenOffice jodconverter socket --------------------编程问答-------------------- 顶一下,我也遇到同样问题,不知道你现在解决没有! --------------------编程问答-------------------- 这个问题也一直困扰我,有没有大神解决过这个问题呢 --------------------编程问答-------------------- 我也碰到类似问题,windows下转换很多失败,不知道大家有没有解决
补充:Java ,  Eclipse
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,