- 如何部署新的服务?
- 安装
SuperMap iServer 7C 以前版本时,最后一步安装 License Manager 的时候出现问题怎么办?
- 启动 SuperMap iServer 7C
服务时,环境检查不通过的几种可能原因及解决方法。
- 为什么启动 iServer 服务时,出现
iServer 实际使用的 UGO 版本较低,不推荐使用的警告?
- 更新和升级 iServer 产品包中使用的
SuperMap iObjects Java 时需要注意什么?
- 为什么启动 iServer
服务时,报以下类似错误:“java.lang.UnsatisfiedLinkError: D:\SuperMap\SuperMap
Objects Java 6R\Bin\Wrapj600.dll: 找不到指定的程序”?
- 为什么启动 iServer 服务时,报端口占用错误,导致
iServer 服务启动失败?
- 为什么升级到 SuperMap iServer
Java 6R(2012) SP2 后,原有许可不可用?
- 使用 SuperMap iServer
7C 进行扩展开发时,如果用到了 SuperMap iObjects Java 7C,是否需要购买 SuperMap iObjects
Java 7C 的许可?
- 为什么运行 SuperMap
iServer 过程中报如下错误:“java.lang.OutOfMemoryError: unable to create
new native thread”?
- SuperMap iServer 服务崩溃的可能原因有哪些?
- SuperMap iServer 在非正常关闭的情况下,服务为什么会自动重启?
- iServer Windows/Linux/AIX 安装包,以命令行方式启动时
- iServer war 包,在 Tomcat 容器中,以命令行方式启动时
- iServer 以 Windows 服务启动时
- iServer war 包,在非 Tomcat 容器中启动时
- 所使用的 JDK/JRE 路径(通过环境变量JAVA_HOME/JRE_HOME指定)中包含了括号
- SuperMap iServer 在 Tomcat
等 Java Web 容器中,以 Windows 服务形式启动时,日志文件放在哪里?
- 在 windows
系统上启动 SuperMap iExpress 时,如果在控制台中出现:The APR based Apache Tomcat
Native library which allows optimal porformance in production
environments was not found on the java.library.path,怎么办?
- 停止 iServer 时,bin 下为什么会生成
*.mdmp 文件,导致磁盘占用过多?
- 如果iServer所在的操作系统配置了多个IP,如何指定iServer服务所使用的IP?
- 在AIX系统上安装iServer时,运行了install.sh后,为什么安装进度条显示不完整?
- 为什么在 Tomcat6
上部署 SuperMap iServer 8C 的war包,浏览服务时出现异常:java.lang.NoClassDefFoundError:javax/servlet/AsyncListener、java.lang.ClassNotFoundException:javax.servlet.AsyncListener?
- 在SUSE环境下部署iServer后,报以下错误:“mmap
failed for CEN and END part of zip file ”,应如何解决 ?
- 启动
iServer 多进程后,为什么会出现警告信息“文件名或扩展名太长”,同时 iServer 无法正常运行?
- 为什么在 Tomcat 和 JBoss
上使用 SuperMap iServer 的 war 包时,URI 不兼容中文路径?
- 在 WebLogic
上部署成功的 iServer 服务,通过 WebLogic 的管理页面更新之后,再次访问时出现“HTTP 500 内部服务器错误”?
- 为什么在
WebLogic 上部署 iServer 服务失败,并抛出 PermGen space 的错误信息?
- 在 Linux 系统下使用 iServer
时,如何设置才能监视 iServer 与数据库型数据源的连通情况?
- 为什么在
Linux 系统上启动 iServer 服务时,报以下类似错误:“Exception in thread "main"
java.lang.UnsatisfiedLinkError: 【libWrapj600.so】: home\SuperMapiServer\support\jre\lib\amd64\headless\libmawt.so:
symbol awt_FreeDrawingSurface, version SUNWprivate_1.1 not defined
in file libmawt.so with link time reference ”?
- 为什么有时候在Linux下启动
iServer 或 iPortal 时出现以下错误:“../libWrapj.so:libpng12.so.0:无法打开共享对象文件;没有那个文件或目录?”
- 为什么在 SUSE
Linux Enterprise 11 SP2 操作系统上无法启动 iServer 服务?
- 为什么在
Linux 系统上启动 iServer 服务时,报如下类似错误:“Unable to set localhost. This
prevents creation of a GUID”?
- Linux 系统没有图形界面,如何通过命令行方式配置
SuperMap iServer 7C 使用许可?
-
在 Linux 64位操作系统上安装 SuperMap License Center 许可驱动程序时,有的会出现:“The
32bit support is missing. Please install the x86 compatibility
packages required by your distribution and retry the installation.
See the installation guide for more details.Aborting … “,如何解决?
- libc6-i386 和 ia32-libs(Ubuntu)
- libstdc++-devel.i686、glibc.i686、libgcc.i686、libstdc++.i686、glibc-devel.i686(RHEL、 CentOS、OpenSUSE、SLES 和 OES)
- glibc-32bit(OpenSUSE、SLES 和 OES)
- 如果在 Hyper-v
上运行的 Linux 操作系统中,安装7C 许可失败,或在重启系统后许可不可用,该如何解决?
- 产品升级到7C 后为什么 Linux 操作系统上有时候出现中文乱码问题?
- 在较低版本的 Linux 系统上使用7C
产品时,服务无法启动,support/objectsjava/bin/libWrapj.so 出现 libgomp.so 相关的错误,如何解决?
- 在 Linux 操作系统上安装 SuperMap
License Center 许可驱动程序时,有时会出现:“hasp_update failed with status 65”错误信息,如何解决?
- 为什么使用远程工具(如:putty、SecureCRT、SSH)启动
Linux 机器上的 SuperMap iServer 7C 或 SuperMap iPortal 7C 服务后,访问服务首页报“Could
not initialize class sun.awt.X11GraphicsEnvironment”或“系统环境检查不通过”错误,而在本机上启动服务,访问服务首页却正常?
- 为什么 Linux
系统中(以 Ubuntu 为例)启动 iserver 后,在快速发布工作空间为服务时,会提示“工作空间密码有误”,catalina.out
里有如下类似错误:“java.lang.NoClassDefFoundError:Could not initialize
class java.awt.Toolkit”?
- 为什么 Linux 系统中,启用多进程以后,重启iServer时会启动失败?
- 为什么在
Linux 系统中以普通用户身份运行 iServer,开启 iServer 多进程后,重启 iServer 时启动失败,并在控制台或日志中报如下错误:java.lang.OutOfMemoryError:unable
to create new native thread
- 为什么访问 REST 服务或 WFS 服务时出现错误码500,并在日志中看到“警告:Java
heap space”?
- 使用二维地图缓存时,需要注意什么?
- 为什么通过
JavaScript 的 httpxmlrequest 对象获取“World Map”的地图服务时正常而获取“世界地图_day”的地图服务时却没有结果?
- 如何配置 SuperMap iServer,使支持跨域请求?
- 为什么获取透明图片时,并不透明,背景为黑色?
- 为什么有时候发送请求时服务器无法正确识别请求,即出现返回乱码、请求失败或者得到错误结果的情况?
- 为什么 SuperMapCloud
表述方式下,地图与云服务图层出现偏差;Tianditu 表述方式下,地图与天地图服务的图层出现偏差?
- 在浏览海图数据、标签专题图、符号专题图等时,出现部分要素被截断、显示不全的现象,应如何解决?
- 通过某比例尺获取的地图图片为什么与以前版本产品中同样比例尺下获取的地图图片不一样?
- iServer
中对 REST 资源进行 POST 请求时,得到的结果资源 ID 为什么与 REST API 请求示例中的不一样?
- 为什么对 iServer 提供的地图服务进行查询时会出现如下错误“java.lang.OutOfMemoryError:
Java heap space”?
- 为什么启动 SuperMap iServer
后,控制台会有网络数据检查不通过的警告?
- 为什么 SuperMap
iServer 提供的 WMTS 1.0.0服务在常用工具 Gaia 中打不开?
- 浏览地图时,为什么会出现同一标签中字体不同的情况?
- 使用服务管理器中的“快速发布服务”向导发布文件型工作空间时,为什么“本地浏览”按钮不可用?
- 如果忘记 SuperMap iServer
初始化时创建的管理员账户密码怎么办?
- 通过服务配置文件修改服务实例名称后,原有授权信息为什么失效?
- 为什么启动服务后访问服务管理器(WebManager)时,服务器返回401?
- 为什么配置 CAS 认证服务器后,单点登录认证失败?
- iServer 资源回收功能不可用,应如何解决?
- Windows 系统:在【SuperMap iServer 安装目录】\bin 下用文本编辑器打开setclasspath.bat文件,在 if not "%_RUNJDB%" == "" goto gotRunJdb 上方加入 if not ""%1"" == ""debug"" goto gotRunJdb。 如图:
- Linux 系统:在【SuperMap iServer 安装目录】\bin 下用文本编辑器打开setclasspath.sh文件,加入 if [ "$1" = "debug" ] ; then ... fi。 如图:
- iServer运行时出现响应速度变慢的情况,同时catalina.log日志文件中出现较多条INFO级别的异常信息,例如“java.io.IOException:
断开的管道”,或“java.io.IOException: 您的主机中的软件中止了一个已建立的连接”。应该如何解决?
- 搭建集群时,需要注意什么?
- 分布式切图时,控制台为什么会提示“No
buffer space available (maximum connections reached?):connect”?
- Windows 系统
- Linux 系统
- 为什么使用分布式切图服务时有的子节点不切图?
- 为什么将 FastDFS 地图切片集导出为
MBTiles 文件后,有时结果为白图或不正确?
- 分布式切图时,将切片存储在MongoDB中,当MongoDB部署在Windows
7或Windows Server 2008操作系统上时,随着MongoDB中的切片逐渐增加,会出现MongoDB无故异常退出,且退出时间不定的情况,应如何解决?
- iServer 对部署路径有哪些要求?
- 当 KML 文件中包含模型数据的时候,如何发布成
SuperMap 3D 服务?
- 使用 64 位的 SuperMap
iServer 发布 Oracle 数据源的数据,为什么服务内容为空?
- Oracle 等数据库型的工作空间为什么有时候会打开失败?
- 如何调整数据库检查的频率?
- 如果用户已经创建了
iPortal 的系统管理员账号,如:admin,门户数据也初始化了,此时由 SQLite 数据库切换至 MySQL 数据库,访问门户首页的地图、服务列表时,为什么是空的,批量注册服务出错,控制台提示“Cannot
add or update a child row: a foreign key constraint fails...”?
- 在 Linux
平台上,使用 SuperMap iServer 发布包含 Oracle(非 10.1 版本) 数据源的文件型工作空间时,为什么服务内容为空?
- 数据查询中采用关联外表查询条件时,如果关联的数据库为Oracle,为什么有时候查询结果为空?
- 将 iServer
注册成 Windows 系统服务后,通过系统服务方式启动,发布 Oracle 引擎的数据为地图服务后,在 maps 资源下可显示地图列表,但访问地图表述不出图;发布为数据服务后,在
datasources 资源下不显示数据源。该如何解决?
答:请参见 GIS 服务的快速发布、服务介绍、体系结构中各层的配置
答:首先,License Manager 是独立安装的,不影响 SuperMap iServer 的安装。产品安装包里附带的是最新的 SuperMap License Manager 版本,如果原机器中已经装有 SuperMap License Manager 6,会出现此问题。解决办法:
(1) 不必安装安装包里附带的新版本 License Manager ,继续使用以前版本进行 License 配置;
(2) 卸载以前版本的 License Manager,安装本产品安装包附带的 SuperMap License Manager 6R,位置在“安装包根目录\LicenseManager”下。
答:SuperMap iServer 7C 服务需要配置 JRE 1.6 或以上版本、SuperMap iObjects Java,需要配置 SuperMap iServer 7C 的使用许可。
在 %SuperMap iServer_HOME%\bin 目录下使用“iserver.bat -v”(Linux/Unix 平台使用 “./iserver.sh -v”)可以查看当前 SuperMap iServer 的版本及配置信息。可能原因及解决方法如下:
(1) SuperMap iServer 许可配置不正确,请确保使用许可已正确配置。许可的配置请参见许可配置说明。
(2) JRE/JDK 版本过低或者不兼容。SuperMap iServer 支持1.7以上版本的 JRE/JDK。
(3) SuperMap iObjects Java 安装不完整或者不正确(使用 war 包的情况,其他发行包已自带),请确保 SuperMap iObjects Java 已正确安装并设置环境变量,即设置 UGO_HOME 为 SuperMap iObjects Java 的目录,并在系统的 PATH 环境变量中添加 %UGO_HOME%\Bin。
(4) SuperMap iObjects Java 的版本不正确,此时可能是 SuperMap iObjects Java 的版本过低,或与 JRE/JDK 的版本不对应(若使用32 bit 的 JRE/JDK,则需要使用32 bit 的 SuperMap iObjects Java;若使用64 bit 的 JRE/JDK,则需要使用64 bit 的 SuperMap iObjects Java)。请升级 SuperMap iObjects Java。
答:iServer 服务需要配置 UGO,即 SuperMap iObjects Java,且 iServer 实际使用的 SuperMap iObjects Java 版本不能低于 iServer 期望使用的版本。默认情况下,iServer 使用自带的 SuperMap iObjects Java,位于 %SuperMap iServer_HOME%\support\Objectsjava\bin 目录。您可以通过在 %SuperMap iServer_HOME%\bin 目录下使用“iserver.bat -v”(Linux/Unix 平台使用 “./iserver.sh -v”)查看 iServer 当前使用的 SuperMap iObjects Java 版本信息。
答:更新位于 %SuperMap iServer_HOME%\support\Objectsjava\bin 目录的 iObjects 产品包时,请同时更新 %SuperMap iServer_HOME%\webapps\iserver\WEB-INF\lib 目录中的组件 JAR 包,即名称以“com.supermap.”开头的 JAR 包。请确保这两个位置的组件包版本一致。
答:可能的原因及解决办法有:
(1) JRE/JDK 版本过低或者不兼容。请下载安装 JRE(1.8及以上版本)并设置环境变量,即设置 JAVA_HOME 为 JDK 目录(如果安装的是 JRE,则设置 JRE_HOME 为 JRE 目录)。
答:SuperMap iServer 产品包默认部署在 Tomcat 中,Tomcat 默认使用了 8090、8015端口,这两个端口被占用则无法正常启动服务。可以通过以下两种方式解决:
(1) 请退出占用端口的程序,然后重新启动 SuperMap iServer。目前已知的可能占用 8090 端口的程序有:360 杀毒软件的自动升级程序。
(2) 修改 SuperMap iServer 产品包中 Tomcat 的端口号,然后重新启动 SuperMap iServer。具体方法是修改%SuperMap iServer_HOME%/conf/server.xml 中的相关端口,如:<Server port="8016" ……>、<Connector port="8091" …… redirectPort="8454" ……>。
答:SuperMap iServer Java 6R(2012) SP2 新增了新功能的许可管理,需要使用新版本的 SuperMap License Manager 重新配置许可,配置过程参见许可配置说明。
答:不需要。但需要注意的是:扩展开发的程序将只能部署在 SuperMap iServer 7C 中,不能单独发布。
答:SuperMap iServer 中,线程池中创建线程时会在操作系统里创建一个真正的物理线程,在某些内存小的机器上,当发布的数据量大、访问量大时,因处理高并发的请求,操作系统创建物理线程所需的内存空间会跟 Java 虚拟机堆产生内存竞争,由此导致线程创建失败(iServer 32位安装包默认分配的最大的 Java 虚拟机内存为512M,最大线程数为300)。可通过如下方式解决:
(1) 减少分配给 java 虚拟机的内存;修改 Java 虚拟机参数,例如在 windows 版的 iServer 包中,修改 %SuperMap iServer_HOME%/bin/catalina.bat 中的 JAVA_OPTS,设置 -Xmx512m 为更小值;
(2) 减少 tomcat 连接池的活动线程数;修改 %SuperMap iServer_HOME%/conf/server.xml 中,<Executor/>节点的 maxThreads 为更小值。
答:有如下可能原因:
(1)若在 AIX 系统上使用使用大文件缓存时 iServer 服务崩溃,是因为文件缓存超出了 AIX 系统允许进程使用的内存大小,在 AIX 上,允许进程使用的数据段的数量限制了进程可用内存大小,数据段的数量由 LDR_CNTRL 环境变量控制,如下将进程的数据段的数量设置为 8,此时它的可用内存大小就是8*256MB=2GB:
export LDR_CNTRL=MAXDATA=0x80000000
(2)若在使用地图服务时崩溃,请检查本机是否安装并开启了金山毒霸杀毒软件。开启金山毒霸可能会导致 iServer 服务崩溃。
(3)已知 Tomcat 7.0.29 版本会导致内存泄露,更换为其他 Tomcat 版本,如 Tomcat 7.0.26 即可。
答:这是为了在 iServer 服务异常的情况下,通过服务自动重启来保证 iServer 继续正确工作。自动重启功能在如下场景中有效:
自动重启功能不适用如下场景:
注意:SuperMap iServer 可通过执行 shutdown.bat/shutdown.sh(位于【SuperMap iServer 安装目录】\bin 下)或按住键盘上的 Ctrl+C 键结束服务,来正常关闭,详细请参见服务器的启动/停止。
系统配置文件(iserver-system.xml)中<properties> 节点下的<restartWhenCrash>参数,可用于控制是否启用该功能。
答:当 SuperMap iServer 以 Windows 服务形式启动时,以部署到 Tomcat 中为例,在【SuperMap iServer 安装目录】\webapps\iserver\WEB-INF\iserver-log4j.properties 文件中,指定了日志文件的存放路径:log4j.appender.F.File=../logs/iserver.log,因此 logs 文件夹放在服务启动文件(cmd.exe)的上一级目录下,即日志文件的存放位置为:C:\Windows\logs\。
另外,用户可以修改上述 log4j.properties 文件,把指定的存放 log 文件的相对路径改为绝对路径,例如:log4j.appender.F.File=D:/Tomcat /logs/iserver.log。
答:此条信息不影响 iExpress 服务。可以将【SuperMap iExpress 安装目录】\bin\x64(或 x86)目录下的 tcnative-1.dll 动态库文件拷贝到【SuperMap iExpress 安装目录】\bin 目录下即可。需要注意的是,x64 目录下的 tcnative-1.dll 动态库文件对应的 windows x64 系统, x86 目录下的 tcnative-1.dll 动态库文件对应的 windows x86 系统,用户需要根据自身的操作系统类型拷贝相应目录下的 tcnative-1.dll 动态库文件到 bin 目录下。
答:停止 iServer 时,请使用 shutdown.bat/sh,而不是 Ctrl+C 命令。
答:您可以通过修改Catalina.bat中的Java虚拟机参数中的-Diserver_ip来指定iServer所使用的IP。即:修改 %SuperMap iServer_HOME%/bin/catalina.bat 中的 JAVA_OPTS,设置-Diserver_ip为期望的IP,如:
set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx1536m -XX:MaxPermSize=192m -Xss512k -Diserver_ip=192.168.12.13
答:安装进度条显示不完整是因为您的AIX系统没有安装图形界面。该显示效果不影响iServer的服务启动,但是为了更好的使用效果,建议您安装图形界面后再开始使用iServer。
答:原因是 iServer 用到了 Servlet 3.0 的异步请求功能,而 Tomcat6 中使用的是 Servlet 2.0,不包含此功能。解决方法是将 Tomcat 中 Servlet API 2.0 升级至 3.0。
答:您可以通过以下三种方法解决:
(1) 增加 SUSE 所在机器或虚拟机的物理内存,要求物理内存不少于6G。
(2) 减少分配给JVM的最大堆内存,由1.5G减少到1G。具体方法是:打开 【SuperMap iServer 安装目录】\bin\catalina.sh ,将JAVA_OPTS="$JAVA_OPTS -Xms256m -Xmx1536m -Xss512k"修改为JAVA_OPTS="$JAVA_OPTS -Xms256m -Xmx1024m -Xss256k"。
(3) 将 iServer 内置的 jre 降级至1.7 版本。
答:原因是安装或解压 iServer 时,目标路径过长。解决方法是减少 iServer 安装目录层级,例如将 iServer 安装或解压到D:/SuperMap/目录下。
答:一般情况下,Tomcat 和 JBoss 默认的数据编码不是“utf-8”,也就不兼容中文路径,即 URI 中包含中文时会出错。因此,为使 SuperMap iServer 的 war 包兼容中文路径,部署 war 包的 Tomcat、JBoss 服务器的数据编码需要改为“utf-8”,即参数 URIEncoding 需设置为 URIEncoding="utf-8"。
Tomcat 上的具体操作为,修改 \Tomcat\conf\server.xml,在如下位置加上最后一行:
<Connector port="8090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8453" executor="tomcatThreadPool" enableLookups="false" URIEncoding="utf-8"/>
JBoss 上的具体操作为,修改 \JBoss-5.1.0.GA\server\default\deploy\jbossweb.sar\server.xml,在如下位置加上最后一行:
<Connector protocol="HTTP/1.1" port="8080" address="${jboss.bind.address}" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8"/>
答:这是由于部署 iServer 服务时需要加载自带的动态链接库,首次部署时该动态链接库已经被加载,导致更新时加载失败。解决方法:更新 iServer 之后,请在 WebLogic 的管理页面重启部署 iServer 所用的服务器(Server)。
答:这是因为 PermSize 大小不能满足 iServer 需求。请将当前所使用 WebLogic 域的 PermSize 设为 256M。如 Windows 系统上创建的 WebLogic 域为 C:\wls1033_dev\user_projects\domains\SuperMapiServer,则在 C:\wls1033_dev\user_projects\domains\SuperMapiServer\bin\startWebLogic.cmd 的如下位置加上第二行:
@REM Call setDomainEnv here. set JAVA_OPTIONS=-XX:MaxPermSize=256M set DOMAIN_HOME=D:\MIDDLE~1\WLS103~2\user_projects\domains\base_domain for %%i in ("%DOMAIN_HOME%") do set DOMAIN_HOME=%%~fsi call "%DOMAIN_HOME%\bin\setDomainEnv.cmd" %* set SAVE_JAVA_OPTIONS=%JAVA_OPTIONS% set SAVE_CLASSPATH=%CLASSPATH%
答:在启动 iServer 服务前,以 root 用户执行如下命令:
echo 5 > /proc/sys/net/ipv4/tcp_retries2
这样,当数据库连接断开时,iServer 中将提示:****工作空间连接失败。
答:推荐的解决方法为:在【SuperMap iServer 安装目录】\SuperMapiServer8C\support目录下执行:
./dependencies_check_and_install.sh install -y
执行完成后,重新启动 iServer 。
另一种解决方法是手动替换libmawt.so文件
如果使用 32 位的 iServer,请用$SuperMap iObjects Java_HOME\bin 目录下的 libmawt.so 文件替换 $JRE_HOME\lib\i386\headless 目录中的 libmawt.so 文件;
如果使用 64 位的 iServer,请用 $SuperMap iObjects Java_HOME\bin 目录下的 libmawt.so 文件替换 $JRE_HOME\lib\amd64\headless 目录中的 libmawt.so 文件。
答:由于当前系统中缺少libpng12库文件所致,安装与系统匹配的libpng12库文件即可解决。您可以通过以下三种方式安装libpng12库。
1. 使用iServer提供的依赖库自动检测与安装工具进行安装(【SuperMap iServer 安装目录】\SuperMapiServer8C\support\dependencies_check_and_install.sh)。安装命令为:
./dependencies_check_and_install.sh install -y
2. 直接使用系统盘完成库安装;
3. 使用产品包中提供的rpm包完成安装(【SuperMap iServer 安装目录】\SuperMapiServer8C\support\objectsjava\third_lib 或 【SuperMap iPortal 安装目录】\SuperMapiPortal8C\support\objectsjava\third_lib):
(1)SUSE系统,通过yum install libpng12-0-1.2.44-7.1.x86_64.rpm
(2)Redhat 或 CentOS,通过yum install libpng-1.2.10-17.el5_8.x86_64.rpm完成安装
答:在 SUSE 上需要安装第三方数据库客户端才能正确加载 sdx 数据引擎。一个 sdx 加载失败会影响其他 sdx 数据引擎的加载,从而导致无法打开任何数据源或系统崩溃。需要依赖第三方数据库客户端的 sdx 数据引擎文件有:libSuEngineSRDB.sdx、libSuEngineOracle.sdx、libSuEngineDMCI.sdx、libSuEnginePG.sdx、libSuEngineOsp.sdx、libSuEngineAltibase.sdx、libSuEngineDB2.sdx、libSuEngineKDB.sdx。
解决方法是:删除 $SuperMap Objects Java_HOME\bin 中不需要的数据库引擎文件(上述列表中的*.sdx)。例如:需要使用 Oracle 数据源,则首先安装 Oracle 客户端,然后删除 libSuEngineOracle.sdx 之外的上述所有*.sdx,再启动 iServer 服务。以此类推,如果需要使用其他数据库引擎,也进行相应的处理。
答:出现这种现象时,请在 /etc/hosts 文件中,配置主机名对应的 IP 地址,即将主机名映射到具体的 IP 地址。如加上下面最后一行,表示将机器名 linux-3z6l 映射到 192.168.112.213。
# Syntax: # IP-Address Full-Qualified-Hostname Short-Hostname 127.0.0.1 localhost 192.168.112.213 linux-3z6l linux-3z6l
答:通过 com.supermap.license.jar 以命令行方式配置许可包括如下四个步骤:
(1)设置 Java 环境变量,并设置环境变量 LD_LIBRARY_PATH 为 com.supermap.license.jar 所在目录:
export=./support/jre/bin/
export=./support/SuperMap_License/
(2)获取本机信息,进入 SuperMapiServer7C\support\SuperMap_License 目录下,执行如下命令并指定生成的本机信息文件所存放的路径,在指定的路径下生成 *.c2v 文件:
java -jar com.supermap.license.jar -create /路径名/*.c2v
(3)将本机信息提交给北京超图软件股份有限公司。
将上面步骤生成的本机信息文件(*.c2v)提交给北京超图软件股份有限公司,北京超图软件股份有限公司将根据您的申请生成*.v2c 正式许可文件并返回给您,您通过该文件配置正式许可。
(4)许可生效,将您获得的*.v2c 正式许可文件指定到文件位置,执行如下命令:
java -jar com.supermap.license.jar -update /路径名/*.v2c
此外,可执行 java -jar com.superamp.license.jar -help 查看配置使用许可的相关命令,详细请参见Linux 系统下的许可配置说明。
答:因为该 Linux 64 位操作系统缺少 32bit 支持库,所以运行出错。解决方法是需要安装支持32位的支持库。iServer 提供了自动检测与安装依赖库的工具 dependencies_check_and_install.sh。您只需要在启动 iServer 前,在【SuperMap iServer 安装目录】\SuperMapiServer8C\support下执行如下命令运行:
./dependencies_check_and_install.sh install -y
您也可以加载系统盘补充安装相关库,或到相应系统的官网上获取相关库来安装。需要安装的32位支持库包括:
答:如果遇到许可安装失败,或安装过的许可不可用,可以通过以下方法把驱动卸载后重新安装。
(1)把/var/hasplm 目录删除,命令如下:
cd /var
rm -rf hasplm
(2)卸载许可驱动:
cd /SuperMapiServer7C/support/SuperMap_License/Support/aksusbd-2.2.1-i386
./dunst
(3)重新安装许可驱动:
./dinst
答:目前已知可能出现的乱码问题与相应的解决方式有以下两种:
(1)WFS 服务和 Data Rest 服务中的中文数据集名显示乱码。如果出现这种现象请将数据升级到7C 版本。
(2)缓存目录和文件名显示乱码。这是由于系统的 LANG 环境变量与 iServer 使用的 LANG=zh_CN.UTF-8 不同导致的显示问题,不影响功能使用。可将系统的 LANG 也修改为 zh_CN.UTF-8,以保证显示正确。
答:可能是因为系统缺少了相关的动态库文件所致,目前已知的文件有:libgomp-4.4.0-6.el5.i386.rpm 和 libgomp-4.4.0-6.el5.x86_64.rpm。
答:该错误提示可以忽略,当您重复安装许可驱动时,会出现该错误提示信息,表示当前计算机已导入过90天的试用许可,试用期内不影响许可的正常使用。如果已经过了90天试用期,请联系销售人员申请继续试用或正式购买(可通过在线商店购买短期许可)。
答:如果使用远程工具启动 SuperMap iServer 7C 或 SuperMap iPortal 7C 服务,需要首先登陆 Linux 机器,然后打开一个终端运行以下命令:
(1)X:n& 在第 n 个屏幕上启动一个 XServer , n 为任意整数(如:22、30 等)。
(2)export DISPLAY=:n.0 设置 DISPLAY 变量到本机的 XServer 服务器上,然后再重启服务即可。
答:出现以上类似提示或者错误报告时,是由于该 Linux 环境没有安装图形界面的原因。推荐的解决方法为:
在【SuperMap iServer安装目录】/SuperMapiServer8C/support下,执行如下命令安装图形界面。执行后,重新启动 iServer 即可:
./dependencies_check_and_install.sh install -y
您也可以手动安装(以 Ubuntu 环境为例):
1)在连接 Internet 的情况下,执行 sudo apt-get update,获得最近的软件包列表;
2)在之后再执行 sudo apt-get install xinit,安装 xinit 图形界面;
3)执行 ./shutdown.sh 和 ./startup.sh 重启 iserver,然后在 windows 浏览器中发布服务时就不会报错了。
答:可能是因为该系统的hostname对应的IP与系统实际的IP不一致,导致多进程的服务无法启动。使用单机多进程时,需确认hostname对应的IP与ifconfig查询到的IP一致。如果不一致,则修改/etc/hosts中hostnam对应的IP,与 ifconfig查询结果一致后,再启动iServer即可。
答:这是由于Linux操作系统中对普通用户使用的资源进行了限制。例如最大允许使用内存,最大允许启用的进程或线程数等。您可以通过 ulimit -a 命令查看这些资源限制情况。
在多进程模式下,每个 Worker 会启动约200个线程。当 iServer 中启动过多 Worker,总线程数接近或达到允许普通用户启用的线程数时,就会出现此问题。
解决方法:以 root 用户身份执行 ulimit -u 4133725 命令,增加允许普通用户启用的最大线程数。
答:Java 虚拟机内存对于某些服务不够用,所以出现上述错误。解决方法:修改 Java 虚拟机内存参数为更大,例如 -Xmx1024m,然后重启服务。
答:制作二维地图缓存时,需要注意机器的 DPI,生成二维地图缓存的机器的 DPI 需要跟 SuperMap iServer 服务器所在机器的 DPI 一致,才能保证缓存可用。
答:对于 URI 地址中的中文地图名称需要进行编码,比如对“世界地图_day”进行编码 var mapName= encodeURI(“世界地图_day”);使用编码后的地图名称的 URI 是 var uri="http://192.168.115.68:8090/iserver/services/maps/rest/maps/"+mapName+".json"。
答:实现跨域有多种方式,在服务器端 SuperMap iServer 不仅提供了 JSONP 表述格式支持 Ajax 客户端的跨域请求,还提供了 Access Control 方式(参见:http://www.w3.org/TR/access-control/)支持跨域请求,可在 REST 接口(含 RestServlet、JaxrsServletForJersey)中进行配置,如下:
Restlet 机制的 REST 接口的配置:
<interface name="rest" class="com.supermap.services.rest.RestServlet"> <config class="com.supermap.services.rest.RestConfig"> <accessControlAllowOrigin>*</accessControlAllowOrigin> </config> </interface>
JaxRS 机制的 REST 接口的配置:
<interface class="com.supermap.services.rest.JaxrsServletForJersey" name="restjsr"> <config class="com.supermap.services.rest.JaxrsConfigForJersey"> <accessControlAllowOrigin>*</accessControlAllowOrigin> </config> </interface>
其中<accessControlAllowOrigin/>标签的值对应支持跨域的请求来源,多个地址以英文逗号隔开,即资源可被来自这些地址的请求跨域访问。“*”表示服务可以被来自任何地址的请求跨域访问,不设表示不支持此种方式的跨域,SuperMap iServer 的配置文件中,rest、restjsr 接口默认配置的是“*”。
根据 W3C 的跨域资源共享标准(http://www.w3.org/TR/access-control/),HTTP 响应中包含消息头 Access-Control-Allow-Origin 时,Access-Control-Allow-Origin 的值标识该资源可以被那些地址跨域使用,对应 Supermap iServer 配置中的<accessControlAllowOrigin/>标签。Access-Control-Allow-Origin 消息头的值类似“http://sample1:8080”,标明资源可以被来自“http://sample1:8080”的请求跨域访问,多个地址以英文逗号隔开。
对于非 GET 请求,在向服务器发送请求前,都会先发一个 OPTION 请求。按照 W3C 的跨域资源共享标准,服务器对 OPTION 的 HTTP 响应中,消息头需要包含 Access-Control-Allow-Origin、Access-Control-Allow-Methods 来标识资源是否可被跨域访问,消息头 Access-Control-Allow-Origin 的含义跟以上描述类似,消息头 Access-Control-Allow-Methods 标识了资源可以被哪些 HTTP 请求方法跨域访问,取值为“GET、HEAD、POST、PUT、DELET”中的一个或多个,多个 HTTP 方法以英文逗号隔开,区分大小写。
答:24 位以下的颜色深度不支持图片透明显示,此时需要检查操作系统的颜色深度设置,需要设置为24位或以上才支持图片透明显示。有如下几种情况影响 SuperMap iServer 出透明图片:
(1) SuperMap iServer 服务器所在操作系统本身的颜色深度设置小于 24 位;
(2) 远程连接来启动 SuperMap iServer 时,远程连接的显示选项中,颜色深度的设置小于 24 位;
(3) SuperMap iServer 服务器所在的操作系统中,RDP-Tcp 属性设置中,客户端设置的“颜色深度最大值”一项小于 24 位,此时通过远程连接该服务器启动服务。
答:发送的 HTTP 请求没有使用 UTF-8编码导致服务器无法识别所致。对于非 ASCII 字符,SuperMap iServer 默认使用 UTF-8编码,如果不是,则无法正确解析。
答:由于 SuperMap 云服务的数据、天地图服务的数据按照国家有关规定进行了脱密处理,与原始数据不一致。
答:请将 SuperMap iObjects Java 根目录\bin\SuperMap.xml 中的 IsMapInflated 属性改为 true。iServer 自带的 SuperMap iObjects Java 位于 %SuperMap iServer Java_HOME%/support/objectsjava 目录中。
答:这是由于 SuperMap 产品体系中的比例尺是基于屏幕分辨率的,目前屏幕分辨率默认值为96dpi,而在 SuperMap iServer Java 6R(2012) 及以前的产品中,屏幕分辨率默认为76.2dpi,此变更从 SuperMap iServer Java 6R(2012) SP1开始生效。关于地图比例尺的详细介绍,请参考比例尺的定义。
答: newResourceID 作为操作结果资源的 ID 是一个随机数,如对 datasetBufferresults 资源执行 POST 请求后得到的结果资源 datasetBufferresult 的 ID,因此每次执行 POST 请求得到的结果子资源 ID 是不同的。
答:可能是由于查询时返回的结果记录集中包含的对象数量过多造成的。可以采用以下方式限制一次返回的结果记录数从而避免此类问题:
(1)客户端进行查询时,可以通过 expectCount 参数设置期望返回结果的记录数,使之限制在服务端可接受范围内。
(2)服务器端可以设置默认返回记录数,iServer 提供了 queryExpectCount 配置项(默认值为1000)来设置默认返回记录数,详见通过 XML 文件配置服务提供者。
答:启动 iServer 服务时后台会对网络数据集和转向表进行检查,并抛出针对网络数据的警告,不影响其他功能的使用。如果需要使用交通网络分析功能,则应该根据警告日志调整网络数据以保证网络分析功能的正确性。
答:Gaia 只识别<WGS84BoundingBox>节点,不识别<BoundingBox>节点,而 iServer 提供的 WMTS100接口的 GetCapabilities 中包含3857对应的<BoundingBox> 节点,所以在 Gaia 中无法打开 WMTS100服务。解决这个问题,需要用户自定义 WMTS 接口,比例尺集合应选择投影4326对应的比例尺集: GlobalCRS84Scale,GlobalCRSPixel,GooleCRS84Quad,ChinaPublicServices,当数据自身投影为4326时,也可以选择 Custom。
答:因为部署 iServer 服务的系统中不存在该标签所使用的字体库。
解决方法是:在该系统中,安装该标签所使用的字体库。例如:Linux下字体库的安装目录为 %SuperMap iServer_HOME%/support/fonts。详细说明请参见:安装后配置。
答:可能存在如下两种情况:
(1)服务不在本地,请使用“远程浏览”进行选择;
(2)IE9、IE10、Chrome、Safari 下,由于浏览器的安全控制,SuperMap iServer 无法获取欲发布工作空间的准确路径,请使用“远程浏览”进行选择。
答:在 SuperMap iServer 的【SuperMap iServer_HOME】\bin 目录下有个 passwordreset.bat/passwordreset.sh 文件,专门用来处理用户忘记系统初始化时的管理员账户密码问题。如果忘记系统初始化时的管理员账户密码,可以通过以下操作重新创建管理员账户:
(1) 停止 SuperMap iServer 服务,即执行 【SuperMap iServer_HOME】\bin 目录下的 shutdown.bat /shutdown.sh 文件。
(2) 执行 passwordreset.bat/passwordreset.sh 文件 。
(3) 重启 SuperMap iServer 服务,即执行 【SuperMap iServer_HOME】\bin 目录下的 startup.bat/startup.sh 文件。服务启动后访问 iServer 首页时,系统会自动跳转到创建管理员账户界面,此时只需重新创建管理员账户即可。
答:通过服务配置文件修改服务实例名称(即“服务组件/服务接口”)后,服务实例会被系统视为全新的服务,默认为“任何用户都可以访问”。管理员可以在服务管理器中对新的服务实例重新授权并手动删除 shiro.ini(WEB-INF 下)中原服务的授权信息,或直接手动修改 shiro.ini,将原服务实例名更新为新的服务实例名。
修改 shiro.ini 的方法是,找到[instances]节点,更新服务实例名称并与授权角色对应,格式如:
<服务实例名称>= PRIVATE,role1,role2
如果需要重新命名服务实例且保留授权信息,建议通过服务管理器(WebManager)来修改,这样系统会自动更新服务实例名匹配原有的授权角色。
答:如果以前在同一浏览器使用了 SuperMap iServer 6R(2012) 6.1.3的 Beta 或 RC 版,升级到 SuperMap iServer 6R(2012) 6.1.3的正式版时,可能会出现401错误。因为 SuperMap iServer 在 6.1.3正式版升级了安全登录的 Cookie 信息,如果使用旧版本的产品时点击过登录页面的“记住我”,则访问6.1.3 正式版产品时就可能因浏览器保存的旧的 Cookie 信息而导致401错误。
解决方法是:清除浏览器 Cookie 信息。
答:如果 CAS 认证服务器和 GIS 服务器不在同一台机器上,由于两台机器的时间差,可能导致登录验证不成功,这时需要调整两台机器的时间保持一致,或延长容错时间间隔,iServer(或 iPortal、iExpress)默认的时间差容限为 3 分钟。修改容错时间差容限的方法是编辑 shiro.ini(WEB-INF 下),修改 casRealm.tolerance 参数(单位为毫秒)如下:
...
casRealm.enabled = false
casRealm.reserveSystemAccount = true
casRealm.casServerUrlPrefix = http://{ip}:{port}/cas
casRealm.casService = http://{ip}:{port}/{contextPath}/shiro-cas
casRealm.securityInfoDAO = $sqliteRealm
casRealm.tolerance = 180000
...
答:如果您配置的 JAVA 环境变量值中包含空格,如 D:\Program Files\java_x64\jdk1.7.0_17_x64,将导致 iServer 的资源回收功能失效。解决方法如下:
答:可以通过在iServer内置的tomcat的文件中修改日志的级别为WARNING(默认为FINE)来提升iServer的响应速度。具体修改方法为:
1. 用文本编辑器打开【iServer安装目录】/conf/logging.properties文件
2. 修改1catalina.org.apache.juli.AsyncFileHandler.level = FINE为:1catalina.org.apache.juli.AsyncFileHandler.level = WARNING
答:请根据具体应用的情况,进行以下设置:
(1) 如果使用地图服务进行出图,需要对集群包含的 GIS 服务器上的 SuperMap Object Java 7C 进行统一设置:打开【SuperMap iObjects Java 7C 安装目录】\Bin\SuperMap.xml 文件,把 CustomMapRatioEnable 参数设为 true,即:<CustomMapRatioEnable>true</CustomMapRatioEnable>。如果不进行此项设置,地图服务出图时,可能会出现图片错位的情况。注意:SuperMap iServer 自带的 SuperMap iObjects Java 已经修改。
(2) SuperMap iServer 是以 Servlet 的形式部署在 Servlet 容器中的,如果作为集群子节点的 SuperMap iServer 被迁移到另外一个端口不同的 Servlet 容器下时,需要手工更改 iserver-system.xml 文件中<host>节点的 port 属性为新端口号。另外,也可访问该集群子节点的任意一个 GIS 服务,SuperMap iServer 会自动修改<host>节点的 port 属性为新端口号。
(3) 服务 URI 中不能出现特殊字符“^”。
答:分布式切图过程中,向 FastDFS 存储上传切片时,占用的端口数增多,可能会达到本地操作系统的端口数的上限,所以出现上述问题。可通过如下方式规避:
运行 “regedit.exe”,打开注册表,找到 “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters”位置,添加“TcpTimedWaitDelay”,类型为 DWORD,值为30;添加“MaxUserPort”,类型为 DWORD,值为20000(调大系统可用端口数)。
运行 “vi /etc/sysctl.conf”,编辑文件,加入以下内容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
然后执行“/sbin/sysctl -p”让参数生效即可。
答:请检查子节点的地图数据,如果使用的是文件型数据源,需要保证子节点的地图数据与父节点的数据具有相同的路径。
答:在 FastDFS 地图切片集正在写入时导出 MBTiles 文件,此时生成的文件可能不能包含最新的切图结果。如果地图切片集是第一次写入,此时导出的 MBTiles 可能出现白图;如果不是第一次写入,导出的 MBTiles 文件会不包含最新的结果,导致其中的切图结果不正确。
因此,请等待 FastDFS 地图切片集写入完成后再导出 MBTiles 文件。
答:需要在部署了MongoDB的Windows 7、Windows Server 2008操作系统中安装系统补丁。补丁下载地址:https://support.microsoft.com/en-us/kb/2731284
答:包括以下要求:
(1)部署 iServer 服务时,所使用的 JDK/JRE 路径(通过环境变量JAVA_HOME/JRE_HOME指定)中不能含有括号,否则会导致 Oracle 数据源连接失败,或资源定时回收功能不可用;
(2)部署 iServer 服务时,iServer的部署路径不能含有空格,否则资源定时回收功能不可用
答:当 KML 文件中包含模型数据的时候,需要将 KML 文件、模型数据和纹理一起打包,以 zip 格式压缩,然后将压缩包的扩展名改为 *.KMZ 格式后,才能发布成 SuperMap 3D 服务。
答:64 位的 SuperMap iServer 打开 Oracle 数据源时需要使用 64 位的 Oracle 客户端,请确保当前系统正确安装配置了 64 位的 Oracle 客户端。
答:SuperMap iServer 使用数据库型工作空间时会在操作系统的临时目录(如 Windows 下的%Temp%、Linux 下的/tmp 等)写入临时文件,如果系统的临时目录没有足够的空间,就会产生数据库型工作空间无法连接的问题。
因此,使用数据库型工作空间时,应确保系统的临时目录有足够的空间。
答:SuperMap iServer 支持调整数据库检查的频率,即检查“数据库型 工作空间”是否改变或“数据库型数据源”是否断开的时间间隔。具体方法是:修改系统配置文件(iserver-system.xml)中的 <checkDatasourceConnectionInterval> 参数值。
答:因为丢失了原来 SQLite 数据库中 user_infos 表里的用户信息,需要将%SuperMap iPortal_HOME%webapps\iportal\WEB-INF\iportaldata 下的 iportal.db 中的用户信息同步到 MySQL 数据库中。具体操作为:在 MySQL 数据库中的 user_infos 表中添加 admin 这条记录,SQL 语句为:
insert into user_infos(name) values("admin");
此时需要确保 MySQL 数据库中的 servicerooturls 表是空的,如果有记录,需要删除,然后重启 iPortal 服务即可。
需要注意的是:如果您已经使用了 iPortal 创建地图、注册服务等,切换至 MySQL 数据库时如果想保留之前的门户数据信息,那么还需要同步 iportal.db 中的所有门户数据信息。
答:因为在 Linux 平台上,使用 Oracle Client 连接 Oracle Server 打开数据库时, UGO 缺少依赖文件 libclntsh.so.10.1。具体解决办法如下:
(1)建立软连接。进入到 %ORCL_HOME%/lib 目录下,将文件 libclntsh.so.[版本号] 建立成名为 libclntsh.so.10.1 的软连接,即运行命令 ln –s libclntsh.so.[版本号] libclntsh.so.10.1,如下图所示:
(2)验证 UGO 依赖是否正确。到 UGO 目录下执行命令行 ldd –d libSuEngineOracle.so,然后查看输出信息,如果没有出现“not found”等提示信息,则 UGO 依赖正确。重启 SuperMap iServer 服务后,包含 Oracle 数据源的工作空间对应的服务即可正常访问。
答:因为对 Oracle 数据库查询时,如果查询的数据集加字段名超过27个字符,则将不能成功查询。因此,在设置查询条件时,请确认查询的数据集名加字段名不超过27个字符。
答:具体解决方法如下:
(1)删除之前注册的iserver系统服务
(2)在环境变量中新建一个变量 ORACLE_HOME,值为 Oracle 的目录,在系统的 PATH 环境变量的添加值“%ORACLE_HOME%\bin”,并放在首位。
(3)重新打开一个 cmd 控制台窗口,注册iServer服务即可