Linux是一种自由和开放源码的类 UNIX 操作系统,作为服务器的操作系统广泛应用。Linux由林纳斯·托瓦兹在赫尔辛基大学上学时创立,主要受到 Minix 和 Unix 思想的启发。Linux英文解释为 Linux is not Unix。
皕杰报表支持在linux系统中部署,只需选择能够在linux系统中安装的jdk和tomcat即可。但是部署后却遇到一些问题,下面就分别说一下问题和解决方案。
我用的是VM VirtualBox6.1虚拟机以及redhat7.3linux操作系统。虚拟机安装和系统安装就不多说了,单说安装好后,用winscp连接虚拟机时,显示网络错误,连接被拒绝。于是搜索问题原因,有帖子说大概是端口不对,仔细看下,原来要用22端口连接,将端口号改为22后,再连接又显示连接超时,继续搜索问题原因,说也许是防火墙的问题。用systemctl status firewalld命令查看防火墙状态,果然是开启的,用systemctl stop firewalld命令关闭防火墙,winscp果然可以连接虚拟机了。
安装jdk1.8,安装tomcat9.0.37,配置环境变量,将皕杰报表iface整体复制到webapps下,将数据库jdbc驱动jar放到tomcat/lib里,用报表里的server.xml替换tomcat/conf下的server.xml文件,报表部署工作完成。
到tomcat/bin目录下用./startup.sh命令启动tomcat,成功。访问报表,成功,但是却发现报表的工具条变成了英文。
这种情况就是linux系统里缺少中文环境,但是给linux系统配置中文环境却费了一些功夫。
搜索解决方案发现如下设置方案:/etc/sysconfig/i18n里面存放着系统的区域语言设置,可以使linux系统支持国际化信息显示。就是支持多种字符集的转换,避免出现乱码。同一时间i18n只能是英文和一种选定的语言,例如英文+中文、英文+德文、英文+韩文等等。可我在RedHat7中找了半天也没找到i18n,搜索一下i18n,在etc/profile.d/lang.sh中发现了set i18n stuff,应该就是这里了。在文件里看到了LANG设置项,见图:
试着将其中的zh*)LANG=en_US.UTF-8;;改为zh*)LANG=zh_CN.UTF-8;;
zh*)LANG=en_US;;改为zh*)LANG=zh_CN;;
见图:
保存后重新启动tomcat,访问报表,工具条已经变成了中文,见图。
另外可以在etc/profile中增加LANG=zh_CN.UTF-8,也可以达到同样的效果。然而这两种设置都会引发shell窗口乱码,想了很多方法都没有解决,如何在中文环境下shell窗口不乱码是一个新的课题。
其实还有一个从皕杰报表上去掉国际化的办法,就是说不要英文工具条,只保留中文工具条。
1、用压缩软件打开bios-report-6.1.0.jar文件,进入到bios\report\engine\output目录下
2、把该目录下的所有的以message开头的properties文件(message.properties、message_en_US.properties、message_ja-JP.properties等等)的内容全部用message.properties中的内容替换
注意:更改properties文件内容后,文件要保存成UTF-8格式
因为message.properties文件中的内容是中文,替换后,所有的文件内容都替换成了中文,这相当于是去掉了皕杰报表的国际化功能,只会显示中文。