I am trying to migrate a flex application using the jasper reports library over to the java 8 runtime and am running into an error trying to load fonts to embed in a PDF report. I think it is related to a headless openjdk but I can't tell since it is on Google App Engine.
net.sf.jasperreports.engine.JRRuntimeException: Error initializing graphic environment. (Logger.java:137)
at net.sf.jasperreports.engine.util.JRGraphEnvInitializer.initializeGraphEnv(JRGraphEnvInitializer.java:63)
at net.sf.jasperreports.engine.fill.BaseReportFiller.<init>(BaseReportFiller.java:124)
at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:268)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:69)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:57)
at net.sf.jasperreports.engine.fill.JRFiller.createBandReportFiller(JRFiller.java:219)
at net.sf.jasperreports.engine.fill.JRFiller.createReportFiller(JRFiller.java:234)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:103)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:456)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:863)
...snip
Caused by: java.lang.NullPointerException
at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)
at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219)
at sun.awt.FontConfiguration.init(FontConfiguration.java:107)
at sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:774)
at sun.font.SunFontManager$2.run(SunFontManager.java:431)
Possibly related Cannot load font in JRE 8
Has anyone experienced this and have a workaround? I am currently using flex, but would like to move to standard if possible.
EDIT: This was the fix that made it work
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<!-- These will be managed using maven filters for local execution and proper local datastore namespacing -->
<application>@appId@</application>
<version>@appVersion@</version>
<service>report</service>
<runtime>java8</runtime>
<system-properties>
<property name="sun.awt.fontconfig" value="/base/jre8/lib/fontconfig.Prodimage.properties"/>
</system-properties>
</appengine-web-app>
Thanks @dsesto!