I was using Batik with Jasper with some WMF images. Everything was working perfectly in my Windows GUI environmenet. But after deploying to server without available display GUI I got java.awt.HeadlessException. Setting -Djava.awt.headless=true was not sufficient. I started small investigation and I identified the problem: Toolkit.getDefaultToolkit().getScreenResolution(). I modified two classes (attached AbstractWMFReader and AbstractWMFPainter) which use this call with a simple workaround. 1. only one call to this method is needed (subsequent calls can use final static variable already declared). 2. If a HeadlessException is thrown, we assume (hardcoded) resolution 96 (current value from my GUI environment). I think it is better to have this hardcoded output than thrown exception. I tested this new classes and result was OK without thrown Exception. I past my minor changes fot the case that someone else would appreciate server-side functionality for reading WMF files.
Created attachment 23722 [details] Small changes for classes AbstractWMFReader and AbstractWMFPainter
Created attachment 24628 [details] Propose fix Hi Gabriel, First of all, thanks for the fix. The suggested form for contributions is through a patch, though. I've turned your raw file attachment into that. ;-)
(In reply to comment #0) > Everything was working perfectly in my Windows GUI environmenet. > But after deploying to server without available display GUI I got > java.awt.HeadlessException. > Setting -Djava.awt.headless=true was not sufficient. I've also confirmed that this is already addressed in issue 42408. The other patch is more complete in the sense that it allow configuring resolution through transcoding hints. I'm marking this issue as a duplicate of that bug, and invite you to help testing that patch (currently the bug is marked "need info" as it wasn't yet sufficiently tested). (The patch I just attached was provided in the sense of easing the comparison between this and the other bug.) *** This bug has been marked as a duplicate of bug 42408 ***