系统图形环境错误
如果含有带斜线、自动换行的单元格、或统计图的报表在网页上发布时,出现如下错误信息:
其中红色部分的文字是该错误的典型特征,其他的信息可能会有变化
这个问题在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的存放目录