非windows下不太图形环境使用报表问题
客户系统为linux,上边部署润乾报表,访问普通报表时能够正常展现,但是访问带统计图或者带表头斜线时报表无法展现,后后台错误信息:
java.lang.NoClassDefFoundError
at sun.java2d.Disposer.addRecord(Disposer.java:68)
at sun.awt.image.BufImgSurfaceData.initRaster(Native Method)
at sun.awt.image.BufImgSurfaceData.createDataIC(BufImgSurfaceData.java:238)
at sun.awt.image.BufImgSurfaceData.createData(BufImgSurfaceData.java:76)
at sun.java2d.SunGraphicsEnvironment.createGraphics(SunGraphicsEnvironment.java:336)
这是一个典型的图形环境问题,即使不用润乾报表自己写程序生成图形时也会报该错误,解决办法:
一:升级jdk,目前已经验证该错误时jdk1.3上的bug,升级jdk即能解决问题。
二:安装图形环境,启动X-window,然后在图形环境中再启动web服务器,为了避免多次重复启动,可在客户端安装xmanager,建立和服务器的远程连接,这样就能通过远程形式对服务器进行管理。
三:pja形式。
由于前两种方式需要对服务器的jdk版本做更改或者要启动图形环境,如果两种方式客户都无法接受可采用第三种方式,通过pja在服务器上模拟一个图形环境,这样就能够对图形进行相关的处理。
1. 下载pja.jar和pjatools.jar,并将这两个jar包放在服务器的某目录上
2. 设置web服务器的启动类路径并修改jvm参数,下面以jboss为例看下实际的操作
1)系统类路径:
在启动jboss的时候确保下面pja.jar和pjatools.jar包存在于系统classpath中,假设您将这两个jar文件放在/usr/WebSphere/AppServer/java/lib/pja/下,可以对JBOSS_CLASSPATH进行设置:
JBOSS_CLASSPATH=”$JBOSS_CLASSPATH:/usr/WebSphere/AppServer/java/lib/pja/pja.jar:/usr/WebSphere/AppServer/java/lib/pja/pjatools.jar”
其中$JBOSS_CLASSPATH是JBOSS_CLASSPATH系统类路径
2)修改jvm启动参数
修改jboss启动命令增加或者修改如下参数
-Xbootclasspath/a:$JAVA_HOME/lib/rt.jar:/usr/WebSphere/AppServer/java/lib/pja/pja.jar
-Djava.awt.toolkit=com.eteks.awt.PJAToolkit
-Djava.awt.graphicsenv=com.eteks.java2d.PJAGraphicsEnvironment
-Djava.awt.fonts=$JAVA_HOME/jre/lib/fonts
-Djava2d.font.usePlatformFont=false
其中$JAVA_HOME是jdk安装目录。
然后重启web服务器,这样带图形报表就能够正常展示。