您的位置:首页 > 运维架构 > Linux

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

2009-01-21 12:41 309 查看
解决办法有三种:

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 前后都要空格
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐