java - JodConverter 处理转换文档的多个请求

标签 java request multiprocessing jodconverter

我的 Java Web 应用程序安装在 server 2008 中。 基本上应用程序使用 jodCOnverter 库(使用 openoffice 服务)将 doc 文件转换为 pdf。 我正在使用以下代码来转换文档。

  String OpenOfficeConnString="C:\\Program Files (x86)\\OpenOffice 4\\program\\soffice.exe -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\" -nofirststartwizard";
    Runtime rt = Runtime.getRuntime();
    Process pSoffice = rt.exec(OpenOfficeConnString); 

    File inputFile = srcDoc;

    String destDoc = srcDoc.getAbsolutePath().substring(0,
                        srcDoc.getAbsolutePath().lastIndexOf("."))
                        + "." + outputFileExt;

    outputFile = new File(destDoc);

                // connect to an OpenOffice.org instance running on port 8100
    OpenOfficeConnection connection = new SocketOpenOfficeConnection(
                        8100);
    connection.connect();

                // convert
    DocumentConverter converter = new OpenOfficeDocumentConverter(
                        connection);
    converter.convert(inputFile, outputFile);

                // close the connection
   connection.disconnect();

当有单个请求文档转换成功时。

但是当多个用户尝试同时转换文档时,会引发错误:

错误如下:

com.artofsolving.jodconverter.openoffice.connection.abstractopenofficeconnection disposing info disconnected 

我的问题是如何处理多个请求,以便每个人都可以转换他们的文档而不会出现任何问题。

最佳答案

一种方法是让您的 Web 应用程序将每个传入文档添加到某种队列服务(例如 Gearman 或 Beanstalkd),然后运行一个队列工作线程来一次执行一个转换。这样,转换将异步完成,无需 Web 应用程序实例等待。

网络应用程序可以使用浏览器的长轮询来查看文档是否已转换,或者只是要求用户时不时刷新网页以查看文档是否已转换。

关于java - JodConverter 处理转换文档的多个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18630557/

相关文章:

php - Swift Poststring 没有得到我的值

ruby-on-rails - 使用 javascript 响应 HTML 请求?

python - 从 ftp 下载并行文件

python multiprocessing BaseManager注册类在Ctrl-C后立即失去连接

rust - 为什么 Rust RwLock 在 fork 时表现异常?

Java将字符串转换为日期然后比较

java - 叠加Swing组件

java - 除了已部署的 WAR,AspectJ CTW 编织在任何地方都有效?

java - 如何在不实现可序列化的情况下在 spring-struts web 应用程序中将 DTO 对象从客户端传输到服务器

javascript - javascript 请求中的缓存控制