SuperMap GIS平台软件在信创环境部署Q&A

文章目录


前言

许多小伙伴在信创项目实施过程中,遇到了不少问题,今天我们就从安装部署开始聊聊大家在部署过程中需要注意的地方以及常遇到的问题。

一、安装部署教程

1. 非中间件安装部署

参考产品压缩包中【Readme.pdf】文档

2. 中间件安装部署

东方通TongWeb:
https://blog.csdn.net/supermapsupport/article/details/52209154
金蝶Apusic:
https://blog.csdn.net/supermapsupport/article/details/70332524

二、日志所在目录

  1. iDesktopX:【iDesktopX根目录】\Bin\log\
  2. iServer:【iServer根目录】\logs\
  3. iEdge:【iEdge根目录】\logs\
  4. iPortal:【iPortal根目录】\logs\

三、中间件注意事项

3.1. 东方通(Tongweb)部署注意事项

参考iServer帮助文档中的在 TongWeb 上部署war包
1、在【TongWeb 根目录】\bin\startserver.bat文件中设置如下内容:
set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager=true

2、修改 【TongWeb 安装路径】/conf 文件夹下的配置文件(tongweb.properties)。在配置文件中加入如下内容:
tongweb.util.scan.StandardJarScanFilter.jarsToSkip=jersey-.jar,hadoop-.jar

3.把解压后的war包放入如下目录:【TongWeb 根目录】\autodeploy,对于iserver#help.war 和 iserver#iClient.war,需要将它们重命名使得名称中不包含特殊符号“#”后再部署,如将iserver#help.war 改为 help.war。启动 TongWeb,就可以将 war 包发布为 Web 服务。

4、启动tongweb,重新部署iServer.war包;还是有报错。(war包问题)
解决方法:将UGO_HOME的路径更改为supermap-iserver-10.1.0-arm64-deploy/support/objectsjava/
注意:10.1.2及以上版本,iServer war包已经包含ARM组件Java。

5、更换tongweb版本报错
解决方法:将tongweb版本更换成7.0.4.1后部署iServer.war包能部署成功

6、访问有报错(Sorry,Page Not Found)
解决方法:在新安装的tongweb7.0.4.1目录/conf/tongweb.properties文件中加上jersey-.jar,hadoop-.jar再重新启动tongweb后正常。

3.2中创(InforSuite AS)涉密信创环境部署注意事项

龙芯CPU在部署iServer war包时,需要提前在中创中间件配置文件中增加一些参数,否则无法部署成功。
解决方法:
1、 获取包含系统依赖库的 Loongson_noarch.rpm 包或loongson_all.deb 包 (涉密环境只能通过安装依赖方式,无法通过手动复制so方式)
百度网盘链接:https://pan.baidu.com/s/1_7757g5E62jG4nFaMLOZbw 提取码:6655
包含以下内容:
● sqlite-jdbc 动态库
● SuperMap iObjects Java for Linux bin
● SuperMap iObjects Java for Linux 所需三方库
● JRE 1.8
● 一些字体
安装后的目录结构如下:
/opt/SuperMap/iserver_support/objectsjava/bin(SuperMap iObjects Java bin)
/opt/SuperMap/iserver_support/objectsjava/systemlibs (SuperMap iObjects Java 所需三方库)
/opt/SuperMap/iserver_support/sqlite-jdbc (sqlite-jdbc 动态库)
/opt/SuperMap/iserver_support/jre (JRE)
/opt/SuperMap/iserver_support/fonts(字体)

2.检查目录/opt/SuperMap/iserver_support 下是否存在其他文件。如果有,请先清理并卸载旧版,命令如下

rpm -evh iserver_support  或  dpkg -r iserver-support  

安装 rpm 包或 dem 包,命令如下

rpm -ivh supermap_iserver_support_10.1.3_${build_version}_linux_Loongson_noarch.rpm

dpkg –i supermap_iserver_support_10.1.3_${build_version}_linux_loongson_all.deb  

请注意,如果系统有配置管理工具,优先使用配置管理工具进行安装。
安装结束后,检查是否还缺少 rpm 包或 deb 包运行所需的依赖库。到目录
/opt/SuperMap/iserver_support/objectsjava/bin/下执行如下命令:

export LD_LIBRARY_PATH=/opt/SuperMap/iserver_support/objectsjava/bin:/opt/SuperMap/iserver_support/jre/lib/mips64
ldd -r libSuToolkit.so
ldd -r libWrapjCore.so | grep not
ldd libWrapjMapping.so | grep not  

如果检测到没有缺库,请清除/opt/SuperMap/iserver_support/objectsjava/systemlibs 目录下的内容;
如果检测到有缺库,请查看/opt/SuperMap/iserver_support/objectsjava/systemlibs 目录下是否包含缺少的库。
如果包含,请手动删除 systemlibs 目录中其他多余的库,或通过执行如下命令进行删除:
例如:缺少 libssl.so、libcrypto.so.10 库,执行如下命令,删除 libssl.so、libcrypto.so.10 库之外的其他多余的库:

ls | grep -v "ssl" | grep -v "cryp" | xargs rm  

3.在中创安装目录的as/config下的文件asenv.conf 中添加如下内容:

AS_JAVA="/opt/SuperMap/iserver_support/jre"
export SUPERMAP_ROOT="/opt/SuperMap/iserver_support"
export UGO_HOME="`$`{SUPERMAP_ROOT}/objectsjava"
export LD_LIBRARY_PATH="`$`{UGO_HOME}/bin:`$`{AS_JAVA}/lib/mips64/:`$` {LD_LIBRARY_PATH}: $ {UGO_HO
ME}/systemlibs"
export LANG=zh_CN.UTF-8
echo UGO_HOME=`$`{UGO_HOME}
echo SUPERMAP_ROOT=`$`{SUPERMAP_ROOT}
echo LD_LIBRARY_PATH=`$`{LD_LIBRARY_PATH}  

4.启动并配置中创中间件
启动中间件。即在安装目录的as/bin下执行:

./startserv

5.开启中创中间件管理界面
在安装目录的as/bin下执行:

sh asadmin enable-secure-admin  

6.进入管理界面(http://< ip>:8060),在【JVM设置】中配置jvm参数:在这里插入图片描述
在这里插入图片描述
点击【添加jvm选项】,输入以下参数:

-Dorg.sqlite.lib.path=/opt/SuperMap/iserver_dependlibs_10.1.3/Bin
-Dorg.sqlite.lib.name=libsqlitejdbc.so

7.发布war包略,可参考《InforSuite AS V10 快速使用手册》
链接:https://pan.baidu.com/s/1OyCv48b8_ToDUf2ZJopXmQ 提取码:6655

8.重启中间件。

四、依赖库下载路径

说明:如下地址是以出现问题的操作系统和版本为参考,如有依赖库不匹配,请您根据操作系统和当前软件版本下载正确的依赖库文件

ARM依赖库地址

百度网盘链接链接: https://pan.baidu.com/s/1toO0rMznL1fwUCgxAsE0gg 提取码: m24q

龙芯依赖库地址

百度网盘链接:https://pan.baidu.com/s/1Rvvv4GhEej3YKdABaXzAhA 提取码:6655

龙芯依赖库地址【涉密环境】

注:涉密环境依赖库是安装包,deb或rpm格式
百度网盘链接:https://pan.baidu.com/s/1_7757g5E62jG4nFaMLOZbw 提取码:6655

五、可能遇到的报错及解决办法

报错一:libfontconfig

问题描述:安装iServer时出现如下问题:
error while loading shared libraries: libfontconfig.so.1: cannot open shared object file: No such xx
问题原因:系统依赖链接版本不匹配导致
问题现象:在【iServer根目录】\support\objectsjava\bin\目录下使用命令查看是否缺少相关依赖

ldd *.so | grep not

中标麒麟V7
在这里插入图片描述
银河麒麟V10
在这里插入图片描述
解决办法:银河麒麟操作系统V10中lib64目录下的libfontconfig.so.1.12.0重命名为libfontconfig.so.1.12.0.i,然后把从中标麒麟V7系统上相同文件夹下libfontconfig.so.1.11.1移动到银河麒麟V10系统中的lib64目录下,并重命名为libfontconfig.so.1.12.0,重启软件即可。

报错二:东方通上出现跨域问题

问题描述:在A服务器上的tongweb中部署iServer.war包,然后再在B服务器上调用A服务器上的iServer服务出现跨域问题(单独安装的iServer相互调用服务没有出现跨域问题)

解决方法:将单独安装的iServer目录下的webapps\iserver\WEB-INF文件夹中的web.xml文件复制到tongweb的iServer的web-inf中,然后将web.xml文件中的下面两个tomcat过滤器的包名改成tongweb的包名,修改是将org.apache->com.tongweb;再重启tongweb服务,重新进行相互调用iServer服务。(这个解决方法是相当于手动给iServer配置了跨域)

修改前:
在这里插入图片描述
修改后:
在这里插入图片描述

报错三:unsatisfiedlinkerror sqlite.core.nativedb._open_utf86

问题描述:iServer在中创中间件上部署成功,但访问iServer报404,查看中创目录下的iServer
日志报错内容为:unsatisfiedlinkerror sqlite.core.nativedb._open_utf8
解决办法:
(1) 使用10.1及以上版本iServer包可以解决此问题;
(2) 若不能替换最新版本,通过查看系统白名单,确认所需系统库不在系统白名单内,与业主协商将iServer加入系统白名单,让iServer能访问系统库中的sqlite库
查看是否存在访问拒绝的linux命令:

cat   /var/log/audit/audit.log   | grep     denied     >1
cat 1   | grep iserver

注:修改最后iserver参数,可查看其他访问拒绝现象
在这里插入图片描述

报错四:iServer启动sh startup.sh 报sh 0: Can’t execute startup.sh: Permission denied

问题描述:iServer启动sh startup.sh 报sh 0: Can’t execute startup.sh: Permission denied
解决办法:系统权限问题,多数情况下保密机无法启动sh脚本文件,与用户协商,或申请使用iServer deb包即可。

报错五:libcups2报错

问题描述:使用supermap_iserver_10.1.1_62_arm_all.deb启动iServer报一些缺少依赖的问题,日志提示libcups.so.2无法打开共享文件,缺少该依赖库。
解决办法:通过百度下载的libcups2不可用时,请尽快与操作系统厂商协调,使用适配库,针对FT1500a,适配文件链接如下:
http://archive.kylinos.cn/kylin/KYLIN-ALL/pool/main/c/cups/
在这里插入图片描述
下载该deb包,然后再安装到系统中,重新启动iServer,iServer能正常启动发布服务源正常,验证通过。

报错六:java.io.IOException: Problem reading font data

问题描述:安装iDesktopX10i(2020)版本,启动iDesktopX有如下报错内容:
java.io.IOException: Problem reading font data.
at java.awt.Font.createFont0(Font.java:1000)
at java.awt.Font.createFont(Font.java:877)
at com.supermap.desktop.core.utilties.FontUtilities.(SourceFile:61)
at com.supermap.desktop.core.startup.StartupDialog.showDialog(SourceFile:48)
at com.supermap.desktop.core.utilties.SplashScreenUtilities.initDialog(SourceFile:92)
at com.supermap.desktop.core.Application.initialize(SourceFile:324)
at com.supermap.desktop.iDesktop.Startup.main(SourceFile:96)
解决办法:此错误一般出现在iDesktopX上,请将如下文件拷贝到iDesktopX安装目录\bin\中,然后重启iDesktopX
依赖库下载参见【4. 依赖库下载路径】 中的依赖库包AllSo.tar.gz

报错七:sun.awt.X11.XToolkit.lazilyLoadDesktopProperty

问题描述:在启动iDesktopX时报上述错误,是由于缺少图形化处理要素,需要安装配置X11等相关内容,具体操作如下:
解决方法:

  1. 设置X11Forwarding参数的值为yes
    vim /etc/ssh/sshd_config
    在这里插入图片描述
  2. 安装相关软件包
yum   -y install xorg-x11-xauth xorg-x11-utils xorg-x11-fonts-*

在这里插入图片描述
3. 在~/.bashrc修改环境变量
vim ~/.bashrc
在最后填入: export DISPLAY=:0.0
然后 source ~/.bashrc
在这里插入图片描述
4. 重启iDeskopX 10i

报错八:java.lang.UnsatisfiedLinkError: libWrapjAnalyst.so: libidn.so.11: 无法打开共享对象文件: 没有那个文件或目录

问题描述:iServer启动缺少相关的libidn.so.11依赖库
解决方法:先将iServer停止,然后将libidn.so.11和libidn.so.11.6.11文件放到iServer安装目录/support/objectsjava/bin/目录下,最后重新启动iServer,iServer能正常启动并且8090端口访问正常。
依赖库下载参见【4. 依赖库下载路径】 中的依赖库包AllSo.tar.gz

报错九:java.lang.UnsatisfiedLinkError: /bin/libWrapjNav.so:/bin/libnssutil3.so: version `NSSUTIL_3.38’ not found (required by /lib64/libssl3.so)

问题描述:iServer启动缺少相关的libssl3.so依赖库
解决方法:先将iServer停止,然后将libssl3.so文件放到iServer安装目录/support/objectsjava/bin/目录下,最后重新启动iServer,iServer能正常启动并且8090端口访问正常。
依赖库下载参见【4. 依赖库下载路径】 中的依赖库包AllSo.tar.gz

报错十:java.lang.UnsatisfiedLinkError: /home/user/SuperMap_test/supermap-idesktopx-10.1.0-0929-4835-82307-linux64-loongson-bin-chs/bin/libWrapjCore.so: libicui18n.so.52: 无法打开共享对象文件: 没有那个文件或目录

问题描述:龙芯版的IDesktopX在龙芯系统上启动报错。
解决办法:可以用ldd命令查看libWrapjCore.so缺少哪些依赖库或者从报错日志提示的so库,从/support/tools/目录下有,拷贝到bin就行了。

报错十一:libWwrapjRealspace.so:libjpeg.so.62: no version information available

问题描述:linux上运行java组件程序报错。
解决办法:配置环境变量到系统path中,根据缺失库名称在线安装系统依赖

sudo yum install libgomp
sudo yum install libpng12
sudo yum install libXext
sudo yum install libXi
sudo yum install libXrender
sudo yum install libXtst

也可以使用iserver产品包里的dependencies_check_and_install脚本离线安装系统依赖库。

报错十二:java.lang.IllegalArgumentException: requirement failed: Date exceeds minimum indexable value (1970-01-01T00:00Z): 1900-11-01T02:04:17Z

问题描述:spark组件将矢量数据写到hbase数据源里的报错。
解决办法:不创建时间字段索引。

params.put(HBaseFeatureRDDProviderParams.IGNORE_INDEX_DTG, true)

报错十三:spark报Job aborted due to stage failure

Exception in thread “main” org.apache.spark.SparkException: Job aborted due to stage failure: Task 3 in stage 1.0 failed 1 times, most recent failure: Lost task 3.0 in stage 1.0 (TID 4, localhost, executor driver): com.esotericsoftware.kryo.KryoException: java.lang.NullPointerException
Serialization trace:
alternateTitles (org.geotools.metadata.iso.citation.CitationImpl)
authority (org.geotools.referencing.NamedIdentifier)
identifiers (org.geotools.referencing.cs.DefaultCoordinateSystemAxis)
axis (org.geotools.referencing.cs.DefaultEllipsoidalCS)
coordinateSystem (org.geotools.referencing.crs.DefaultGeographicCRS)
userData (org.locationtech.jts.geom.MultiPolygon)
geo (com.supermap.bdt.analyst.vector.cpp.AggregatePolygons$FeatureClusterID)
at com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:144)
at com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:551)
at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:708)
问题描述:spark组件将要素打印或者调用聚合分析AggregatePolygons报错。
解决办法:在sparkContext创建前进行配置设置Util.configure(sparkConf)。

报错十四:龙芯系统启动iServer失败,检查依赖缺少2个库

在这里插入图片描述
解决办法:使用supermap_iserver_1010_18914_728_linux64_Loongson_deploy.tar.gz以后的版本,新版本将这2个依赖打包到产品中。

报错十五:统信UOS操作系统和麒麟上安装iServer10.1.1arm版本第一次启动正常,重启服务器后iServer启动报缺少依赖库问题

问题描述:在麒麟4.19.90-17. ky10. aarch64和UOS20 SP1上安装iServer10.1.1版本,第一次启动正常,能正常使用;然后重启服务器或iServer后,iServer访问404,查看日志显示报错如下:
在这里插入图片描述
解决办法:此现象是由于缺少libssl3.so所致,将操作系统对应的库放到iServer根目录/support/objectsjava/bin/目录下,重启iServer即可。
依赖库下载参见【4. 依赖库下载路径】 中的依赖库包libssl3.tar.gz

报错十六:iServer10.1.1在centos7.9及以上版本部署启动失败,日志报错:ldd libWrapjCore.so version `NSS_3.52’ not found (required by /lib64/libssl3.so)

报错原因:该操作系统中系统库已存在libnss系统库,iserver组件bin里的libnss3.so和centos系统的冲突导致的
解决方法:将support\objectsjava\bin目录下的libnss3.so移走或删除,再重新启动iServer正常。

报错十七:在linux系统的金蝶V9.0上部署iServer10.1.1war包,部署完成后访问iServer页面报500错误,查看金蝶日志报错

Failed to start service:
在这里插入图片描述
解决办法:此现象的原因在于未找到iObjects Java路径。建议操作如下:

  1. 检查LD_LIBRARY_PATH,在中间件启动进程前且同一shell中,此参数包含组件路径;
  2. 将iObjects Java路径写入中间件启动脚本;
  3. 检查iObjects Java Bin目录下的libWrapjCore文件是否缺少依赖;
  4. 检查是否存在有遗留进程,如iServer守护进程仍有驻留,ps -ef |grep iserver查看iServer进程,如有kill掉该进程,(当iServer尚未完全关闭时又重新启动iServer会出现数据库被锁定的现象[SQLITE_BUSY] The database file is locked (database is locked));

报错十八:国产服务器(银河麒麟服务器v10)飞腾cpu,T2000,系统部署iServer10.1.0时失败,报错为EnvironmentNative.jni_SetMaxStdIO

在这里插入图片描述
在这里插入图片描述
解决办法:缺少libssl3.so库,检查组件support\objectsjava\bin目录下是否有libssl3.so文件,若没有手动放入Arm的so库并重启iServer;若放入后依然启动失败,检查是否与lib64中的so文件冲突,将系统库中自带libssl3.so文件放入组件support\objectsjava\bin目录下。

报错十九:部署War包出现libresolv.so.2报错

在这里插入图片描述
解决办法:是由于库冲突导致,删除红圈中文件,重新启动iServer即可。


猜你喜欢

转载自blog.csdn.net/supermapsupport/article/details/119904527