第一篇博客,开始觉得有些东西很有记载下来的必要了,好记性不如烂笔头,顺便有些东西也可以和大家分享,相互借鉴。
忙了半年时间,科室的一个web项目大概已经做完。然而在部署到linux系统上时出现了项目中用jasperreport+ ireport 做的报表在网页查询中无法显示,但是在本地windos系统下显示正常。
百度了一下,找到以下解决方案:
1、 linux没有安装图形界面,无法进行图形的处理:
就是让JVM启动时不检测图形界面,由于我们是用的是Tomcat,所以在 /tomcat/bin/catalina.sh 中添加CATALINA_OPTS='-Djava.awt.headless=true'启动参数。
因为不是特别了解这个脚本,所以将脚本中所有涉及到$CATALINA_OPTS 的地方都把-Djava.awt.headless=true \ 添加上了。
如果使用的不是Tomcat系统,可在启动JVM的地方JAVA_OPTS='-Djava.awt.headless=true'然后重新启动Tomcat,问题解决。
注意:
1、-Djava.awt.headless=true这个参数是在jdk1.4.1以后才引入的
2、-Djava.awt.headless=true两边均有空格
当我已经按照以上步骤完成配置时,仍然无法正常显示报表,而且网页正常不报错,只是页面空白,无奈之下只有tomcat后台找问题所在
打开tomcat此目录,看到具体信息:
原来是字体信息无法显示导致报表无法显示。此时百度到很多解决方法,但是都挺复杂,涉及到各个环境变量的改变。为了简单,而且报表本身对字体没有要求。故将报表子体句改为默认字体后,重新部署项目,报表正常显示。