RedHatサーバーでjava.awt.HeadlessException
を使用すると、が表示されます。Docx4jReplacedElementFactory
誰かがこれの回避策を知っていますか?(Xvfbの実行以外)
スタックトレースにドリルインしましたが、問題の原因はですjava.awt.GraphicsEnvironment.getDefaultScreenDevice()
。これは、ヘッドレス環境で実行すると例外をスローします。これは文書化されているとおりです:「throws:HeadlessException-if isHeadless()returns true」(HeadlessGraphicsEnvironment.getDefaultScreenDeviceからスローされたjava.awt.HeadlessExceptionに関するコメントを参照)。
与えられgetDefaultScreenDevice
たものは指定どおりに機能していますが、docx4jを使用するときに、そこに行かないようにする別のアプローチはありますか?
のソースを見ると、次のようになりorg.docx4j.org.xhtmlrenderer.util.ImageUtil.getGraphicsConfiguration
ます。
private static GraphicsConfiguration getGraphicsConfiguration() {
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
-> GraphicsDevice gs = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = gs.getDefaultConfiguration();
return gc;
}
スタックトレース:
Cause details:
java.awt.HeadlessException
at sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice(HeadlessGraphicsEnvironment.java:82)
at org.docx4j.org.xhtmlrenderer.util.ImageUtil.getGraphicsConfiguration(ImageUtil.java:119)
at org.docx4j.org.xhtmlrenderer.util.ImageUtil.makeCompatible(ImageUtil.java:70)
at org.docx4j.org.xhtmlrenderer.swing.AWTFSImage.createImage(AWTFSImage.java:38)
at org.docx4j.org.xhtmlrenderer.swing.NaiveUserAgent.createImageResource(NaiveUserAgent.java:197)
at org.docx4j.org.xhtmlrenderer.swing.NaiveUserAgent.getImageResource(NaiveUserAgent.java:167)
at org.docx4j.org.xhtmlrenderer.docx.Docx4jReplacedElementFactory.createReplacedElement(Docx4jReplacedElementFactory.java:57)
[snip]