解决JasperReport在Linux下无法显示的问题!

 解决办法有三种:
1、安装虚拟的Xwindows
2、使用JDK 1.4的headless mode(-Djava.awt.headless=true)
3、使用PJA(Pure Java AWT)
第一种方法一年前就试过了,可是我下载的Xvfb在Solaris下安装时总是报错,始终没有成功。
第二种方法最简单,这次我们就采用它,将-Djava.awt.headless=true加入到weblogic的启动脚本中,类似于下面的语句:
java $JAVA_OPTIONS -classpath $CLASSPATH -Djava.awt.headless=true -Dweblogic.Domain=mydomain -Dweblogic.Name=myserver -Dbea.home=/wls/wlsHome -Dweblogic.management.password=$WLS_PW -Dweblogic.ProductionModeEnabled=$STARTMODE -Djava.security.policy==/wls/wlsHome/wlserver6.1/lib/weblogic.policy weblogic.Server
看来JDK1.4比起JDK1.3来又强大很多,可能不止我一个遇到类似的问题。第二种方法的缺点是需要JDK 1.4版本。
第三种方法中的PJA也是一年前就听说过的,没有仔细地研究,之所以叫做Pure Java AWT就是因为它重载了JDK AWT中依赖于操作系统的画图用的底层函数,使画图完全依赖于java程序本身,而与操作系统无关,自然也不再需要X-Windows的支持,缺点是配置起来比较麻烦,PJA因为跟操作系统无关所以性能比传统的AWT差一些。
我猜想第二种方法-Djava.awt.headless=true的原理应该和PJA相同,就是说JDK 1.4中包含了类似PJA的一些API,java.awt.headless参数就是开关,负责在这些API和操作系统的API之间选择,-Djava.awt.headless=true就选择JDK 1.4中的API,不再调用操作系统的API。

我用的是weblogic8.1.5,在域所在的目录,找到setDomainEnv.sh文件,编辑JAVA_OPTIONS="${JAVA_OPTIONS} -da" 为 JAVA_OPTIONS="${JAVA_OPTIONS} -da -Djava.awt.headless=true"后重启服务即可。有些版本的weblogic版本在Linux上安装后,没有setDomainEnv.sh,则修改startWeblogic.sh的配置。

修改 startWeblogic.sh 文件

${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS} -Dweblogic.Name=${SERVER_NAME} -Dweblogic.ProductionModeEnabled=${PRODUCTION_MODE} -Djava.awt.headless=true -Djava.security.policy="${WL_HOME}/server/lib/weblogic.policy" weblogic.ServerVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS} -Dweblogic.Name=${SERVER_NAME} -Dweblogic.ProductionModeEnabled=${PRODUCTION_MODE} -Djava.awt.headless=true -Djava.security.policy="${WL_HOME}/server/lib/weblogic.policy" weblogic.Server

上面位置里添加 -Djava.awt.headless=true

-Djava.awt.headless=true 前后都要空格

你可能感兴趣的:(解决JasperReport在Linux下无法显示的问题!)