【问题标题】:Timeout Exception for process that creating word file创建word文件的进程超时异常
【发布时间】:2019-09-21 12:42:14
【问题描述】:

我使用documents4j 库创建了一个word 文件。

有时它可以工作,但有时它不工作并经历超时异常。

这里是输出错误:

ERROR c.d.c.msoffice.MicrosoftWordBridge - Thread responsible for running script timed out: C:\****\****\****\word_start287628854.vbs

java.util.concurrent.TimeoutException: Timed out waiting for Process[pid=15988, exitValue="not exited"] to finish, timeout: 5000 milliseconds, executed command [cmd, /S, /C, "C:\****\****\****\word_start287628854.vbs""] in directory C:\****\****\Desktop, output was 0 bytes:

at org.zeroturnaround.exec.ProcessExecutor.newTimeoutException(ProcessExecutor.java:1079) ~[zt-exec-1.8.jar:na]
    at org.zeroturnaround.exec.ProcessExecutor.waitFor(ProcessExecutor.java:1042) ~[zt-exec-1.8.jar:na]
    at org.zeroturnaround.exec.ProcessExecutor.execute(ProcessExecutor.java:860) ~[zt-exec-1.8.jar:na]
    at com.documents4j.conversion.AbstractExternalConverter.runNoArgumentScript(AbstractExternalConverter.java:72) ~[documents4j-util-transformer-process-1.0.3.jar:na]
    at com.documents4j.conversion.msoffice.AbstractMicrosoftOfficeBridge.runNoArgumentScript(AbstractMicrosoftOfficeBridge.java:51) ~[documents4j-transformer-msoffice-base-1.0.3.jar:na]
    at com.documents4j.conversion.msoffice.AbstractMicrosoftOfficeBridge.tryStart(AbstractMicrosoftOfficeBridge.java:34) ~[documents4j-transformer-msoffice-base-1.0.3.jar:na]
    at com.documents4j.conversion.msoffice.MicrosoftWordBridge.startUp(MicrosoftWordBridge.java:44) ~[documents4j-transformer-msoffice-word-1.0.3.jar:na]
    at com.documents4j.conversion.msoffice.MicrosoftWordBridge.<init>(MicrosoftWordBridge.java:39) ~[documents4j-transformer-msoffice-word-1.0.3.jar:na]
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:na]
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) ~[na:na]
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481) ~[na:na]
    at com.documents4j.conversion.ExternalConverterDiscovery.make(ExternalConverterDiscovery.java:30) ~[documents4j-transformer-1.0.3.jar:na]
    at com.documents4j.conversion.ExternalConverterDiscovery.makeAll(ExternalConverterDiscovery.java:42) ~[documents4j-transformer-1.0.3.jar:na]
    at com.documents4j.conversion.ExternalConverterDiscovery.loadConfiguration(ExternalConverterDiscovery.java:85) ~[documents4j-transformer-1.0.3.jar:na]
    at com.documents4j.conversion.DefaultConversionManager.<init>(DefaultConversionManager.java:22) ~[documents4j-transformer-1.0.3.jar:na]
    at com.documents4j.job.LocalConverter.makeConversionManager(LocalConverter.java:79) ~[documents4j-local-1.0.3.jar:na]
    at com.documents4j.job.LocalConverter.<init>(LocalConverter.java:51) ~[documents4j-local-1.0.3.jar:na]
    at com.documents4j.job.LocalConverter$Builder.build(LocalConverter.java:186) ~[documents4j-local-1.0.3.jar:na]
    at org.processmining.framework.util.ui.scalableview.interaction.ExportInteractionPanel.export(ExportInteractionPanel.java:408) ~[bin/:na]
    at org.processmining.framework.util.ui.scalableview.interaction.ExportInteractionPanel$1.run(ExportInteractionPanel.java:78) ~[bin/:na]
    at java.base/java.lang.Thread.run(Thread.java:835) ~[na:na]

我该如何解决这个错误?

【问题讨论】:

    标签: java documents4j


    【解决方案1】:

    那是因为你需要在运行应用程序之前关闭word文档。

    尝试杀死runnig proccess,在Windoes OS的CMD中你可以运行命令:

    taskkill /F /PID your_pid_number
    

    例如,您可以看到应用程序正在等待进程 15988 完成 java.util.concurrent.TimeoutException: Timed out waiting for Process[pid=15988, exitValue="not exited"] to finish...

    因此你可以运行命令:

    taskkill /F /PID 15988
    

    然后运行你的应用程序

    【讨论】:

    • 这是一个新的执行,它试图创建另一个独立于之前执行的单词文件。
    • @jumpy 如果关闭预览word文档,还是会出现这个异常?
    • 它已关闭。现在它可以工作了,但是如果我多次重新运行应用程序关闭上一次执行,则可能是其中一个执行通过了 TimeoutException。
    • 当你得到这个异常时,杀死导致这个的进程,就像我在我的回答中写的那样
    • 我尝试了正确的 PID。它的输出是“找不到进程”
    猜你喜欢
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    相关资源
    最近更新 更多