-
Beginner 初学数据Lv2
发表于2018-7-18 09:39
悬赏1
已解决
楼主
weblogic+linux,BI启动报错,报表打开,有awt X11报错信息
最佳答案
BI在有些linux服务器中不能生成统计图的解决办法
[size=13.3333px]解决办法:在tomcat的"catalina.sh"文件的开始增加一行:
[size=13.3333px]CATALINA_OPTS="-Djava.awt.headless=true"
[size=13.3333px]原因:生成统计图的包teechart会调用底层awt来画图,awt又调用本地方法操作系统的函数来画图,如果操作系统中没有图像接口,那么awt会报出下面异常:
[size=13.3333px]java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:134)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)
at sun.awt.motif.MToolkit.<clinit>(MToolkit.java:81)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at java.awt.Toolkit$2.run(Toolkit.java:748)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:739)
at java.awt.SystemColor.updateSystemColors(SystemColor.java:417)
at java.awt.SystemColor.<clinit>(SystemColor.java:409)
at com.steema.teechart.Panel.<clinit>(Panel.java:48)
at com.steema.teechart.Chart.initFields(Chart.java:208)
at com.steema.teechart.Chart.<init>(Chart.java:426)
at com.steema.teechart.TChart.<init>(TChart.java:830)
at com.sanlink.irpt.rp.chart.Chart2ImageImpl.initTChart(Chart2ImageImpl.java:109)
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:134)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)
at sun.awt.motif.MToolkit.<clinit>(MToolkit.java:81)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at java.awt.Toolkit$2.run(Toolkit.java:748)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:739)
at java.awt.SystemColor.updateSystemColors(SystemColor.java:417)
at java.awt.SystemColor.<clinit>(SystemColor.java:409)
at com.steema.teechart.Panel.<clinit>(Panel.java:48)
at com.steema.teechart.Chart.initFields(Chart.java:208)
at com.steema.teechart.Chart.<init>(Chart.java:426)
at com.steema.teechart.TChart.<init>(TChart.java:830)
at com.sanlink.irpt.rp.chart.Chart2ImageImpl.initTChart(Chart2ImageImpl.java:109)
[size=13.3333px]如果系统确实没有图像接口,需要告诉awt这点,让awt用自己的方法去画图(Djava.awt.headless=true就是做这个事情),不去调用本地函数。
[size=13.3333px]另外一种方法,在Server.start的时候判断如果os=linux&&xwindow=null,则System.setProperty("java.awt.headless", "true")。这样就不用修改catalina.sh。
2个回答
中间件上增阿基环境变量:
export JAVA_OPTIONS= -Djava.awt.headless=true
BI在有些linux服务器中不能生成统计图的解决办法
[size=13.3333px]解决办法:在tomcat的"catalina.sh"文件的开始增加一行:
[size=13.3333px]CATALINA_OPTS="-Djava.awt.headless=true"
[size=13.3333px]原因:生成统计图的包teechart会调用底层awt来画图,awt又调用本地方法操作系统的函数来画图,如果操作系统中没有图像接口,那么awt会报出下面异常:
[size=13.3333px]java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:134)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)
at sun.awt.motif.MToolkit.<clinit>(MToolkit.java:81)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at java.awt.Toolkit$2.run(Toolkit.java:748)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:739)
at java.awt.SystemColor.updateSystemColors(SystemColor.java:417)
at java.awt.SystemColor.<clinit>(SystemColor.java:409)
at com.steema.teechart.Panel.<clinit>(Panel.java:48)
at com.steema.teechart.Chart.initFields(Chart.java:208)
at com.steema.teechart.Chart.<init>(Chart.java:426)
at com.steema.teechart.TChart.<init>(TChart.java:830)
at com.sanlink.irpt.rp.chart.Chart2ImageImpl.initTChart(Chart2ImageImpl.java:109)
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:134)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)
at sun.awt.motif.MToolkit.<clinit>(MToolkit.java:81)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at java.awt.Toolkit$2.run(Toolkit.java:748)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:739)
at java.awt.SystemColor.updateSystemColors(SystemColor.java:417)
at java.awt.SystemColor.<clinit>(SystemColor.java:409)
at com.steema.teechart.Panel.<clinit>(Panel.java:48)
at com.steema.teechart.Chart.initFields(Chart.java:208)
at com.steema.teechart.Chart.<init>(Chart.java:426)
at com.steema.teechart.TChart.<init>(TChart.java:830)
at com.sanlink.irpt.rp.chart.Chart2ImageImpl.initTChart(Chart2ImageImpl.java:109)
[size=13.3333px]如果系统确实没有图像接口,需要告诉awt这点,让awt用自己的方法去画图(Djava.awt.headless=true就是做这个事情),不去调用本地函数。
[size=13.3333px]另外一种方法,在Server.start的时候判断如果os=linux&&xwindow=null,则System.setProperty("java.awt.headless", "true")。这样就不用修改catalina.sh。