000033818 - Report preview and/or generation fails with 'java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment' error in 6.9.1 and earlier versions of RSA Identity Governance & Lifecycle

Document created by RSA Customer Support Employee on Aug 20, 2016Last modified by RSA Customer Support on Jan 15, 2020
Version 7Show Document
  • View in full screen mode

Article Content

Article Number000033818
Applies ToRSA Product Set:  RSA Identity Governance & Lifecycle
RSA Version/Condition: 6.9.1 and earlier
IssueGenerating or previewing reports in RSA Identity Governance & Lifecycle fails with one of the following errors in the user interface:

java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment

java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser

 

The aveskaServer.log has the same errors:


Exception in thread >
java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment>
    at java.lang.Class.forName0(Native Method)>
    at java.lang.Class.forName(Class.java:171)>
    at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:68)>
    at sun.awt.X11.XToolkit.<clinit>(XToolkit.java:89)>
    at java.lang.Class.forName0(Native Method)>
    at java.lang.Class.forName(Class.java:171)>
    at java.awt.Toolkit$2.run(Toolkit.java:834)>
    at java.security.AccessController.doPrivileged(Native Method)>
    at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:826)>
    at sun.swing.SwingUtilities2$AATextInfo.getAATextInfo(SwingUtilities2.java:122)>
    at javax.swing.plaf.metal.MetalLookAndFeel.initComponentDefaults(MetalLookAndFeel.java:1554)>
    at javax.swing.plaf.basic.BasicLookAndFeel.getDefaults(BasicLookAndFeel.java:130)>
    at javax.swing.plaf.metal.MetalLookAndFeel.getDefaults(MetalLookAndFeel.java:1589)>
    at javax.swing.UIManager.setLookAndFeel(UIManager.java:514)>
    at javax.swing.UIManager.setLookAndFeel(UIManager.java:554)>
    at com.workpoint.gui.common.WorkPointLAF.A(Unknown Source)>
    at com.workpoint.gui.common.WorkPointLAF.A(Unknown Source)>
    at com.workpoint.gui.common.WorkPointLAF.setUIDefaults(Unknown Source)>
    at com.workpoint.gui.external.WpImageUtils.<clinit>(Unknown Source)>
    at com.aveksa.server.workflow.WorkflowServiceProvider.refreshProcessImage(WorkflowServiceProvider.java:1732)>
    at com.aveksa.server.workflow.WorkflowServiceProvider.getProcessImageFromNative(WorkflowServiceProvider.java:1656)>
    at com.aveksa.server.workflow.WorkflowEventListener$ProcessRefreshThread.run(WorkflowEventListener.java:268)>

      or


[com.aveksa.server.report.Report] Error in fillReport
com.aveksa.server.runtime.ServerException: java.lang.NoClassDefFoundError:
Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser
at com.aveksa.server.report.Report.fillReport(Report.java:2029)
at com.aveksa.server.report.Report.fillReport(Report.java:1678)
at com.aveksa.server.report.Report.fillReport(Report.java:1667)
at com.aveksa.gui.objects.report.GuiReport.fill(GuiReport.java:695)
....
Caused by: java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser
at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:124)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:89)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:104)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:62)
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:179)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:108)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:668)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:984)
at com.aveksa.server.report.Report.fillReport(Report.java:2022)


Please refer to RSA Knowledge Base Article 000030327 -- Artifacts to gather in RSA Identity Governance & Lifecycle to find the location of the aveksaServer.log for your specific deployment.
CauseThese errors are caused by the underlying reporting framework attempting to leverage local X11 classes that would typically be used to render locally. Since the report is displayed in a browser and not in an X11 environment, this call is not needed. The error is typically thrown when a JDK is used that does not have the full set of classes that are available in the Sun/Oracle JDK. For this particular instance the error is benign because the report does not need to be rendered in X11.
 
Resolution
To stop these benign errors from occurring, add the Djava.awt.headless java setting option to the JVM configuration. This tells the server that the Linux server that is hosting the application will not be rendering X11 consoles.

Follow the steps below:


  1. Backup run.conf which is located in $AVEKSA_HOME/jboss/bin.


cd $AVEKSA_HOME/jboss/bin
cp run.conf run.conf.bak



  1. Open run.conf in a text editor.
  2. Add the following line at the end of the file:


JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"


  1. Save the file.
  2. Restart RSA Identity Governance & Lifecycle to make this setting active.


$ acm restart
NotesSee related RSA Knowledge Base Articles: 

 

Attachments

    Outcomes