2017-04-03 52 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+)生成自己的臨時目錄。

相關問題