2017-04-03 49 views
0

我们有一个系统运行fop的一个非常旧的版本(0.20.5)。 这一直工作很多年,t ## Heading ##他最近3个月,我们开始看到间歇性XML到PDF转换错误。什么会导致fop间歇性java.io.FileNotFoundException:/tmp/fop-page-0.ser错误

Mar 27, 2017 3:00:26 AM org.apache.fop.events.LoggingEventListener processEvent 
SEVERE: Error while deserializing page 1. Reason: java.io.FileNotFoundException: /tmp/fop-page-0.ser (No such file or directory) 
java.io.FileNotFoundException: /tmp/fop-page-0.ser (No such file or directory) 

如果我们重新运行相同的变换它的工作原理没有错误。 我建议将fop升级到最新版本,但我在发行说明https://xmlgraphics.apache.org/fop/changes.html中没有发现任何内容。

这是一个已知问题,是否在fop版本中解决?

这是什么原因造成的?

  • AFAIK没有发生与fop相关的更改。
  • 的工作量增加了,我的猜测是并发变换
+1

你可以发送完整的电话给fop吗?你可以尝试用不同的TMP或TMPDIR环境变量运行单独的实例吗? –

回答

1

感谢斯特凡Hegny指着我的方向是正确的问题。在我们最新版本的fop脚本中,每次执行脚本时都会创建一个临时临时目录来解决这个问题。

为了实现这一点,我添加以下2行

FOP_TEMP=$(mktemp -d) 
FOP_OPTS="$FOP_OPTS -Djava.io.tmp=$FOP_TEMP" 

在端清理离开的java命令行

$JAVACMD -classpath "$LOCALCLASSPATH" -Djava.awt.headless=true $FOP_OPTS org.apache.fop.apps.Fop "[email protected]" 

rmdir $FOP_TEMP 

之前。

0

Carl, 感谢您的解决方案。我们对fop-1.1有同样的问题,但为了解决这个问题,我们必须使用属性:java.io.tmpdir。我们一行改成了这样: FOP_OPTS = “$ FOP_OPTS -Djava.io.tmp = $ FOP_TEMP -Djava.io.tmpdir = $ FOP_TEMP”

最近FOP的版本(2.0+)生成自己的临时目录。

相关问题