目录

系统图形环境错误

5.2.2. 系统图形环境错误

如果含有带斜线、自动换行的单元格、或统计图的报表在网页上发布时,出现如下错误信息:

图 5.2. 图片标题

图片标题

其中红色部分的文字是该错误的典型特征,其他的信息可能会有变化

这个问题在java中称为headless问题,是jdk1.3的bug,bug报告见http://developer.java.sun.com/developer/bugParade/bugs/4281163.html 。jdk1.4已经做了修正,文档见http://java.sun.com/j2se/1.4.1/docs/guide/awt/AWTChanges.html。

润乾公司对这个问题的理解:headless是指由于一些服务器(比如大型机)运行的环境比较特殊,不存在真实的设备去处理一些输入输出,比如显卡,键盘鼠标;这时就需要虚拟一些运行环境出来,或者就不要用到这些设备的相关操作(比如输入输出)。然而运行java.awt包又需要一个的图形环境,由此产生了异常。

这个问题的解决办法有如下三个:

  • 解决办法一:升级JDK版本

    把JDK升级到1.4及以上版本,润乾报表的初始化程序中已经加入了–Djava.awt.headless=true参数。

    由于润乾报表是被集成的,应用中往往还有用户自己的程序,如果服务器先装载用户的初始化程序,而该初始化程序的部分代码可能存在干扰,导致润乾报表设置的–Djava.awt.headless=true参数不起作用。此时必须在用户自己的初始化程序中或者应用服务器的启动java的命令中加入该参数。

  • 解决办法二:启动X-WINDOW

    启动x-window的目的在于创建一个图形环境,因此必须先启动x-window,然后在x-window环境下启动应用服务器。

    启动x-window的命令为:startx

    某些用户的服务器机房不能随便出入,因此对服务器的操作只能通过终端来进行,此时可以在启动服务器的X-WINDOW后,用一个终端连接该X-WINDOW,保持连接,不要断开,然后重起应用服务器即可。如果系统运行过程中,该终端被断开了,就需要重新连接,并重起应用服务器

  • 解决方法三:部署PJA环境

    pja包的下载地址见 http://www.eteks.com/pja/en/#Download

    websphere下的部署:

    1.将pja.jar;pjatools.jar拷贝到:/usr/WebSphere/AppServer/java/lib/pja/下

    2.进入管理控制台

    应用程序服务器 > server1 > 进程定义 > Java 虚拟机

    配置如下参数:

    引导类路径

    ${JAVA_HOME}/lib/pja/pja.jar

    一般 JVM 自变量

    -Dawt.toolkit=com.eteks.awt.PJAToolkit

    -Djava.awt.graphicsenv=com.eteks.java2d.PJAGraphicsEnvironment

    -Djava2d.font.usePlatformFont=false

    -Djava.awt.fonts=${JAVA_HOME}/jre/lib/fonts/

    -Duser.home=${JAVA_HOME}/lib/pja-Dtoolkit.implementation=com.eteks.awt.PJAToolkit

    weblogic下的部署:

    1、 将pja.jar,pjatools.jar拷贝到weblogic的lib目录下,在startWebLogic.sh中将这两个文件加入到CLASSPATH中

    2、将以下文字加入到$JAVACMD中

    -Xbootclasspath/a:/usr/java/jdk1.3.1_06/lib/rt.jar:/home/weblogic/wlserver6.1/lib/pja.jar  

    -Djava.awt.toolkit=com.eteks.awt.PJAToolkit 

    -Djava.awt.graphicsenv=com.eteks.java2d.PJAGraphicsEnvironment  

    -Djava.awt.fonts=/usr/java/jdk1.3.1_06/jre/lib/fonts 

    其中

    /usr/java/jdk1.3.1_06   是指java的安装目录

    /home/weblogic/wlserver6.1/lib   是指pja.jar,pjatools.jar的存放目录