1

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]
4

1 に答える 1

1

この最近のアップストリームパッチを適用できます

于 2012-07-23T22:50:37.503 に答える