war 包部署前的环境配置 |
SuperMap iServer 11i(2024) 的 war 包可部署在多种操作系统下的多种中间件中(参见:硬件要求和软件要求)。
使用 war 包部署 SuperMap iServer 11i(2024) 时,需要先安装 JRE/JDK、SuperMap iObjects Java 11i(2024),并进行环境变量的配置。若使用32 bit 的 JRE/JDK,则需要使用32 bit 的 SuperMap iObjects Java;若使用64 bit 的 JRE/JDK,则需要使用64 bit 的 SuperMap iObjects Java。若需要使用 iServer 内置 Spark,请参考使用 iServer 内置 Spark 前的环境准备;需要使用处理自动化服务,请参考使用处理自动化服务。
1. JRE(1.8版本)设置环境变量如下:
如果安装的是 JDK,则设置 JAVA_HOME 为 JDK 的目录;如果安装的是 JRE,则需要设置 JRE_HOME 为 JRE 的目录。
2. SuperMap iObjects Java 环境变量
安装 SuperMap iObjects Java 时会自动设置,也可手工设置如下:
UGO_HOME,设置为 SuperMap iObjects Java 的目录。并将%UGO_HOME%\Bin 加入到系统的 PATH 环境变量中。
1. JRE(1.8版本)设置环境变量如下:
如果安装的是 JDK,则设置 JAVA_HOME 为 JDK 的目录;如果安装的是 JRE,则设置 JAVA_HOME 为 JRE 的目录,比如在系统的 profile 文件(默认路径为:/etc/profile)中设置 JAVA_HOME 如下:
export JAVA_HOME=/JDK 的目录
使用部分中间件(如宝兰德应用服务器)时,还需要设置 JRE_HOME 并将 JAVA_HOME 加入 CLASSPATH 变量。为此,需要执行如下命令:
export JRE_HOME=/JRE 的目录
export CLASSPATH=$JAVA_HOME/lib/
2. 设置系统的编码方式如下:
export LANG=zh_CN.UTF-8
export LANG=zh_CN.UTF-8
unset LC_CTYPE
3. 设置 SuperMap iObjects Java 的环境变量
如果用户以 ROOT 用户安装 SuperMap iObjects Java,环境变量配置会自动写入到/etc/profile 文件,此时不需要额外设置。
如果用户没有以 ROOT 用户安装 SuperMap iObjects Java,需要进行如下设置:
设置 UGO_HOME,并将 UGO_HOME 加入 LD_LIBRARY_PATH 变量,如下:
export UGO_HOME=/SuperMap iObjects Java 的安装目录
export LD_LIBRARY_PATH=$UGO_HOME/bin:$LD_LIBRARY_PATH
设置 SUPERMAP_ROOT 环境变量,使其指向字体库 fonts 文件夹的父目录。例如在 SuperMap iObjects Java 中默认自带了 fonts,从而设置 SUPERMAP_ROOT 如下:
export SUPERMAP_ROOT=/SuperMap iObjects Java 的安装目录的父目录
设置使用 QT 自带的 offscreen 插件:
export QT_QPA_PLATFORM='offscreen'
4. 执行 source /etc/profile 命令,使上述设置生效。使用部分中间件(如宝兰德应用服务器)时,还需要将上述设置加入 PATH 变量。为此,还需要先执行如下命令:
export PATH=$UGO_HOME/Bin:$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
5. 执行 echo 命令检查设置是否正确。
echo $LANG
echo $SUPERMAP_ROOT
echo $LD_LIBRARY_PATH
注意:若使用 Oracle 数据源,且数据库的编码方式为 GBK,请将 NLS_LANG 参数设置为"simplified chinese"_china.zhs16gbk,如下:
export NLS_LANG="simplified chinese"_china.zhs16gbk
在涉密信创环境下的中间件部署 iServer 时,注意:
1. 除了需要 iServer war 包外,还需要一个包含系统依赖库的 rpm 包或 deb 包,您可以根据系统的包管理工具选择适合的包进行安装。
2. 安装 iserver_support 依赖库:
到目录/opt/SuperMap/iserver_support/objectsjava/bin/下执行如下命令:
export LD_LIBRARY_PATH=/opt/SuperMap/iserver_support/objectsjava/bin
ldd -r libSuToolkit.so | grep not
ldd -r libWrapjCore.so | grep not
ldd libWrapjMapping.so | grep not
如果检测到没有缺库,可清除 /opt/SuperMap/iserver_support/objectsjava/systemlibs 目录下的内容;
如果检测到有缺库,请查看/opt/SuperMap/iserver_support/objectsjava/systemlibs 目录下是否包含缺少的库。例如:缺少 libssl.so、libcrypto.so.10 库,执行如下命令,删除 libssl.so、libcrypto.so.10 库之外的其他多余的库。
ls | grep -v "ssl" | grep -v "cryp" | xargs rm
3. 环境变量配置
涉密系统安全原因,无法修改 /etc/profile 文件并生效,或仅在当前目录下生效。可通过修改 “~/.bashrc”配置文件生效。
export UGO_HOME=/opt/SuperMap/iserver_support/objectsjava/
export SUPERMAP_ROOT=/opt/SuperMap/iserver_support
export LD_LIBRARY_PATH=$UGO_HOME/bin:$LD_LIBRARY_PATH
export PATH= $UGO_HOME/bin:$PATH
export LANG=zh_CN.UTF-8
其中,SUPERMAP_ROOT 环境变量指向字体库 fonts 文件夹的父目录。
source /root/.bashrc
在控制台中输出如下变量,输出的路径均正常。
echo $UGO_HOME
echo $SUPERMAP_ROOT
echo $LD_LIBRARY_PATH
echo $PATH
在 iobjectsjava/bin 目录下执行以下命令,没有任何输出。
ldd libWrapj* | grep not
ldd libSuEngine* | grep not