我们有一个系统运行fop的旧版本(0.20.5)。 多年来一直运行良好,## Heading ##他最近3个月我们开始看到间歇性的xml到pdf转换错误。
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发布中解决了?
导致这种情况的原因是什么?
答案 0 :(得分:1)
感谢Stefan 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 "$@"
和
rmdir $FOP_TEMP
最后进行清理。
答案 1 :(得分:0)
卡尔 谢谢你的解决方案。我们遇到了与fop-1.1相同的问题,但要解决这个问题,我们必须使用属性:java.io.tmpdir。我们将线路改为: FOP_OPTS =“$ FOP_OPTS -Djava.io.tmp = $ FOP_TEMP -Djava.io.tmpdir = $ FOP_TEMP”
最新版本的FOP(2.0+)会生成自己的临时目录。