常见问题解答

发送反馈


  

  1. 安装与部署

  2. 如何部署新的服务?
  3. 安装 SuperMap iServer 7C 以前版本时,最后一步安装 License Manager 的时候出现问题怎么办?
  4. 启动 SuperMap iServer 服务时,环境检查不通过的几种可能原因及解决方法。
  5. 为什么启动 iServer 服务时,出现 iServer 实际使用的 UGO 版本较低,不推荐使用的警告?
  6. 更新和升级 iServer 产品包中使用的 SuperMap iObjects Java 时需要注意什么?
  7. 为什么启动 iServer 服务时,报以下类似错误:“java.lang.UnsatisfiedLinkError: D:\SuperMap\SuperMap Objects Java 6R\Bin\Wrapj600.dll: 找不到指定的程序”?
  8. 为什么启动 iServer 服务时,报端口占用错误,导致 iServer 服务启动失败?
  9. 为什么升级到 SuperMap iServer Java 6R(2012) SP2 后,原有许可不可用?
  10. 使用 SuperMap iServer 7C 进行扩展开发时,如果用到了 SuperMap iObjects Java 7C,是否需要购买 SuperMap iObjects Java 7C 的许可?
  11. 为什么运行 iServer 过程中报如下错误:“java.lang.OutOfMemoryError: unable to create new native thread”?
  12. SuperMap iServer 服务崩溃的可能原因有哪些?
  13. SuperMap iServer 在非正常关闭的情况下,服务为什么会自动重启?
  14. SuperMap iServer 在 Tomcat 等 Java Web 容器中,以 Windows 服务形式启动时,日志文件放在哪里?
  15. 在 windows 系统上启动 SuperMap iEdge 时,如果在控制台中出现:The APR based Apache Tomcat Native library which allows optimal porformance in production environments was not found on the java.library.path,怎么办?
  16. 停止 iServer 时,bin 下为什么会生成 *.mdmp 文件,导致磁盘占用过多?
  17. 如果iServer所在的操作系统配置了多个IP,如何指定iServer服务所使用的IP?
  18. 在AIX系统上安装iServer时,运行了install.sh后,为什么安装进度条显示不完整?
  19. 为什么在 Tomcat6 上部署 SuperMap iServer 8C 的war包,浏览服务时出现异常:java.lang.NoClassDefFoundError:javax/servlet/AsyncListener、java.lang.ClassNotFoundException:javax/servlet/AsyncListener?
  20. 在SUSE环境下部署iServer后,报以下错误:“mmap failed for CEN and END part of zip file ”,应如何解决 ?
  21. 启动 iServer 多进程后,为什么会出现警告信息“文件名或扩展名太长”,同时 iServer 无法正常运行?
  22. 为什么启动 iServer 时使用的是环境变量的 UGO 而不是 iServer 包内的 UGO?
  23. 在 Windows Server 系统中启动 iServer 崩溃,报错 appcrash?
  24. SuperMap iServer 启动报错 [SQLITE_BUSY]  The database file is locked (database is locked)
  25. 在 Docker 环境中启动 iServer 镜像时,容器日志提示“无法XX, 权限不够”?
  26. 如何配置开启 Tomcat 软连接(符号链接)
  27. 更换不同许可类型时,配置许可不生效,如何解决?
  28. 试用许可如何切换正式网络锁?
  29. 试用许可如何切换 Web 许可?
  30. 如何删除本地初次安装的试用许可?
  31. 按核许可无法配置?
  32. 不限核许可如何配置服务节点扩展模块?
  33. Web 许可如何配置服务节点扩展模块?
  34. 传统硬件锁如何跨网段配置许可?
  35. 如何解除某机器占用的硬件锁许可?

    跨平台与中间件

  36. 为什么在 Tomcat 上使用 SuperMap iServer 7C 的 war 包时,URI 不兼容中文路径?
  37. 在 WebLogic 上部署成功的 iServer 服务,通过 WebLogic 的管理页面更新之后,再次访问时出现“HTTP 500 内部服务器错误”?
  38. 为什么在 WebLogic 上部署 iServer 服务失败,并抛出 PermGen space 的错误信息?
  39. 在 Linux 系统下使用 iServer 时,如何设置才能监视 iServer 与数据库型数据源的连通情况?
  40. 为什么在 Linux 系统上启动 iServer 服务时,报以下类似错误:“Exception in thread "main" java.lang.UnsatisfiedLinkError: 【libWrapj600.so】: home\SuperMapiServerJava6R\support\jre\lib\amd64\headless\libmawt.so: symbol awt_FreeDrawingSurface, version SUNWprivate_1.1 not defined in file libmawt.so with link time reference ”?
  41. 为什么有时候在Linux下启动 iServer 或 iPortal 时出现以下错误:“../libWrapj.so:libpng12.so.0:无法打开共享对象文件;没有那个文件或目录?”
  42. 为什么在 SUSE Linux Enterprise 11 SP2 操作系统上无法启动 iServer 服务?
  43. 为什么在 Linux 系统上启动 iServer 服务时,报如下类似错误:“Unable to set localhost. This prevents creation of a GUID”?
  44. Linux 系统没有图形界面,如何通过命令行方式配置 SuperMap iServer 7C 使用许可?
  45. 在 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 … “,如何解决?
  46. 如果在 Hyper-v 上运行的 Linux 操作系统中,安装7C 许可失败,或在重启系统后许可不可用,该如何解决?
  47. 产品升级到7C 后为什么在 Linux 操作系统上有时候出现中文乱码问题?
  48. 在较低版本的 Linux 系统上使用7C 产品时,服务无法启动,support/objectsjava/bin/libWrapj.so 出现 libgomp.so 相关的错误,如何解决?
  49. 在 Linux 操作系统上安装 SuperMap License Center 许可驱动程序时,有时会出现:“hasp_update failed with status 65”错误信息,如何解决?
  50. 为什么使用远程工具(如:putty、SecureCRT、SSH)启动 Linux 机器上的 SuperMap iServer 7C 或 SuperMap iPortal 7C 服务后,访问服务首页报“Could not initialize class sun.awt.X11GraphicsEnvironment”或“系统环境检查不通过”错误,而在本机上启动服务,访问服务首页却正常?
  51. 为什么 Linux 系统中(以 Ubuntu 为例)启动 iserver 后,在快速发布工作空间为服务时,会提示“工作空间密码有误“,catalina.out 里有如下类似错误:“java.lang.NoClassDefFoundError:Could not initialize class java.awt.Toolkit”?
  52. 为什么 Linux 系统中,启用多进程以后,重启iServer时会启动失败?
  53. 为什么在 Linux 系统中以普通用户身份运行 iServer,开启 iServer 多进程后,重启 iServer 时启动失败,并在控制台或日志中报如下错误:java.lang.OutOfMemoryError:unable to create new native thread?
  54. 在中间件上部署的 iServer war 包,如何配置使其可以支持跨域请求?
  55. 在 Tomcat 上使用 war 包时,控制台中文显示乱码
  56. 在 Linux 系统上启动 iServer DataStore ,存储类型选择瓦片或二进制后,iServer DataStore 初始化失败,并在 iServer DataStore 控制台显示“瓦片或二进制数据库配置失败”,原因是什么,该如何解决?
  57. 在 Tomcat 中部署 war 包,通过 webManager 快速发布服务时,为什么远程浏览功能不能正常使用,不显示系统文件目录,该如何解决?
  58. 在 Tomcat 中部署 war 包,访问服务时,控制台出现 “ java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986” 的异常信息,该如何解决?
  59. 在linux系统下spark集群主节点启动后,子节点无法加入到主节点或者log日志中报:WARN Utils: Service 'sparkWorker' could not bind on port 0. 时,该如何解决?
  60. 在Suse操作系统上运行iObjects Java应用程序时出现:java:symbol lookup error:/opt/Bin/libSuGraphicsQT.uge:undefined symbol?
  61. 在东方通中间件上部署 war 包,从其他服务器上调用 iServer 服务出现跨域问题,该如何解决?
  62. 在 Linux 环境下,如果出现类似发布带 SVG 符号的工作空间为 REST 地图服务后,浏览地图时 iServer 崩溃或发布无密码的工作空间时提示输入工作空间密码等问题,可能原因是什么?

    服务访问

  63. 为什么访问 REST 服务或 WFS 服务时出现错误码500,并在日志中看到“警告:Java heap space”?
  64. 使用二维地图缓存时,需要注意什么?
  65. 为什么通过 JavaScript 的 httpxmlrequest 对象获取“World Map”的地图服务时正常而获取“世界地图_day”的地图服务时却没有结果?
  66. 为什么获取透明图片时,并不透明,背景为黑色?
  67. 为什么有时候发送请求时服务器无法正确识别请求,即出现返回乱码、请求失败或者得到错误结果的情况?
  68. 为什么 SuperMapCloud 表述方式下,地图与云服务图层出现偏差;Tianditu 表述方式下,地图与天地图服务的图层出现偏差?
  69. 在浏览海图数据、标签专题图、符号专题图等时,出现部分要素被截断、显示不全的现象,应如何解决?
  70. 通过某比例尺获取的地图图片为什么与以前版本产品中同样比例尺下获取的地图图片不一样?
  71. iServer_中对 REST 资源进行 POST 请求时_得到的结果资源 ID 为什么与 REST_API 请求示例中的不一样?
  72. 为什么对 iServer 提供的地图服务进行查询时会出现如下错误“java.lang.OutOfMemoryError: Java heap space”?
  73. 为什么启动 SuperMap iServer 7C 后,控制台会有网络数据检查不通过的警告?
  74. 为什么 SuperMap iServer 提供的 WMTS 1.0.0服务在常用工具 Gaia 中打不开?
  75. 浏览地图时,为什么会出现同一标签中字体不同的情况?
  76. 为什么进行地图查询或者数据查询时,查询结果错误或者找不到要查询的数据集?
  77. 使用SuperMap iServer 将工作空间中的地图发布为 REST 地图服务后,发现矢量数据部分丢失、标签专题图的部分标签重复
  78. 为什么 iServer 服务发布成功后,访问资源时出现错误码404,资源访问不到?
  79. 为什么 iserver 发布的 WMTS1.0.0 服务在 QGIS 中加载不了?
  80. 发布三维服务后,通过WebGL3D表述加载场景时报错,是什么原因?
  81. 服务发布成功后,为什么会出现获取服务内容不正确的情况?
  82. 发布 TPK 瓦片为地图服务后,浏览显示白图
  83. 使用 MapboxGL 表述浏览地图,为什么个别图层不显示或显示内容与地图实际内容不相符?
  84. 如何优化地图服务、数据服务在 SQL 字段查询时的查询速度?
  85. 为什么通过由 UDBX 数据源发布的 REST 数据服务中的 fields 资源向空数据集添加 JSONB 类型字段时,执行失败?
  86. 在 Linux(x64) 或 Linux(arm64) 系统上发布 REST-视频流服务成功,但本地没有生成视频文件对应的 index.m3u8流文件,可能是什么原因,应该如何解决?
  87. 为什么在 ArcPro 中加载 iServer 发布的 wmts-arcgis 服务后,预览为白图?

    配置管理

  88. 使用服务管理器中的“快速发布服务”向导发布文件型工作空间时,为什么“本地浏览”按钮不可用?
  89. 如果忘记 SuperMap iServer 初始化时创建的管理员账户密码怎么办?
  90. 通过服务配置文件修改服务实例名称后,原有授权信息为什么失效?
  91. 为什么启动服务后访问服务管理器(WebManager)时,服务器返回401?
  92. 为什么配置 CAS 认证服务器后,单点登录认证失败?
  93. iServer 资源回收功能不可用,应如何解决?
  94. iServer运行时出现响应速度变慢的情况,同时catalina.log日志文件中出现较多条INFO级别的异常信息,例如“java.io.IOException: 断开的管道”,或“java.io.IOException: 您的主机中的软件中止了一个已建立的连接”。应该如何解决?
  95. 分布式分析时,为什么创建的分布式分析任务总是一直处于运行状态,spark的任务执行详情页面报“SecurityManager:authentication disabled;ui acls disabled;users with view permission”?
  96. 分布式分析时,创建的分布式分析任务总是一直处于运行状态,并且distributeanalysis.log中报如下警告信息:WARN - Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources  的可能原因有哪些?
  97. 在分布式分析服务中,当分析结果较大时,分析失败,且在 iServer 分布式分析服务的日志文件(distributeanalysis.log)出现类似的报错,报错信息为“org.apache.spark.SparkException: Kryo serialization failed: Buffer overflow”,如何解决?
  98. 启动分布式分析服务后,访问分布式分析页面空白,或者控制台出现类似报错“Connect to localhost:6765[localhost/127.0.0.1]failed:Connection refused”,可能原因有哪些?
  99. Web打印服务输出的地图文档,图层中的字体不显示,显示成方框,该如何解决?
  100. 在 linux 环境下,Web 打印服务启动失败,报“- ERROR - Error loading font family; net.sf.jasperreports.engine.fonts.InvalidFontException: Error loading font "net/sf/jasperreports/fonts/icons/icons.ttf".”,如何解决?
  101. 如何修改 OGC 服务能力文档中 联系人姓名、联系方式、地址等信息
  102. Web 打印服务打印经过 HTTPS 加密后的 Web 服务,打印失败,可能的原因有哪些?
  103. 在linux环境下,使用处理自动化服务时,处理建模器页面工具列表显示为空,访问处理自动化服务接口下的工具列表出现错误码404,并在catalina.out日志中报“ERROR DefaultHttpProxy org.apache.http.conn.HttpHostConnectException: Connect to localhost:8097 [localhost/0:0:0:0:0:0:0:1] failed: 拒绝连接 (Connection refused)”
  104. 通过 IIS 对 iServer 进行反向代理,无法登录代理后的 iServer 服务管理页面
  105. 开启服务动态实例化管理,拉起一定数量的服务后报错内存溢出?

    集群与分布式切图

  106. 搭建集群时,需要注意什么?
  107. 分布式切图时,控制台为什么会提示“No buffer space available (maximum connections reached?):connect”?
  108. 为什么使用分布式切图服务时有的子节点不切图?
  109. 为什么将 FastDFS 地图切片集导出为 MBTiles 文件后,有时结果为白图或不正确?
  110. 分布式切图时,将切片存储在MongoDB中。当MongoDB部署在Windows 7或Windows Server 2008操作系统上时,随着MongoDB中的切片逐渐增加,会出现MongoDB无故异常退出,且退出时间不定的情况,应如何解决?
  111. 多进程切图时,切文件型数据源推送失败?

    数据库

  112. iServer 对部署路径有哪些要求?
  113. 当 KML 文件中包含模型数据的时候,如何发布成 SuperMap 3D 服务?
  114. 使用 64 位的 SuperMap iServer 发布 Oracle 数据源的数据,为什么服务内容为空?
  115. Oracle 等数据库型的工作空间为什么有时候会打开失败?
  116. 如何调整数据库检查的频率?
  117. 如果用户已经注册了 iPortal 的系统管理员账号,如:admin,门户数据也初始化了,此时由 SQLite 数据库切换至 MySQL 数据库,访问门户首页的地图、服务列表时,为什么是空的,控制台会提示“Cannot add or update a child row: a foreign key constraint fails...”?
  118. 在 Linux 平台上,使用 SuperMap iServer 发布包含 Oracle(非 10.1 版本) 数据源的文件型工作空间时,为什么服务内容为空?
  119. 数据查询中采用关联外表查询条件时,如果关联的数据库为Oracle,为什么有时候查询结果为空?
  120. 将 iServer 注册成 Windows 系统服务后,通过系统服务方式启动,发布 Oracle 引擎的数据为地图服务后,在 maps 资源下不显示地图列表;发布为数据服务后,在 datasources 资源下不显示数据源。该如何解决?
  121. 为什么在windows系统上datastore向iServer注册后,有时会出现mongoDB启动失败的现象?
  122. 将存放于数据库中的空间数据,发布为服务后,在大并发量访问场景中,如果出现请求阻塞、出白图或者查询结果个数为0或-1等问题,可能的原因是什么该如何解决?
  123. 发布PGSQL工作空间时,如果报“工作空间连接字符串错误”可能的原因是什么该如何解决?
  124. 在 Linux 环境下 iServer 发布 Oracle 工作空间失败,提示“工作空间连接字符串错误”?
  125. 为什么“Oracle Plus,SQL Server、PostGIS 等数据源”通过 featureResults 资源做 SQL 查询,带 groupBy(结果分组条件的字段)时,返回结果为空?
  126. 在 Linux 系统上启动 iServer DataStore,存储类型选择关系型后,iServer DataStore 初始化失败,并且 iServer DataStore 控制台显示“关系型数据库配置失败”,原因是什么,该如何解决?
  127.  iServer 发布服务,当数据存储在 Oracle 数据源,iSever 发生崩溃,在日志 catalina.out 中出现"ORA-24550: signal received: [si_signo=6] [si_errno=0] [si_code=-6] [si_int=0] [si_ptr=(nil)] [si_addr=0x9c92]"错误时,怎么办?
  128. 当同一个 PostgreSQL 数据库(database)既有 PostgreSQL 数据源,又有 PostGIS 数据源时,PostgreSQL 工作空间发布的数据服务查询结果错误,为什么?

 

 

  1. 如何部署新的服务?

    答:请参见 GIS 服务的快速发布服务介绍体系结构中各层的配置

     

  2. 安装 SuperMap iServer 7C 以前版本时,最后一步安装 License Manager 的时候出现问题怎么办?

    答:首先,License Manager 是独立安装的,不影响 SuperMap iServer 的安装。产品安装包里附带的是最新的 SuperMap License Manager 版本,如果原机器中已经装有 SuperMap License Manager 6,会出现此问题。解决办法:

    (1) 不必安装安装包里附带的新版本 License Manager ,继续使用以前版本进行 License 配置;

    (2) 卸载以前版本的 License Manager,安装本产品安装包附带的 SuperMap License Manager 6R,位置在“安装包根目录\LicenseManager”下。

     

  3. 启动 SuperMap iServer 7C 服务时,环境检查不通过的几种可能原因及解决方法。

    答: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 7C 支持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。

     

  4. 为什么启动 iServer 服务时,出现 iServer 实际使用的 UGO 版本较低,不推荐使用的警告?

    答: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 版本信息。

     

  5. 更新和升级 iServer 产品包中使用的 SuperMap iObjects Java 时需要注意什么?

    答:更新位于 %SuperMap iServer_HOME%\support\Objectsjava\bin 目录的 iObjects 产品包时,请同时更新 %SuperMap iServer_HOME%\webapps\iserver\WEB-INF\lib 目录中的组件 JAR 包,即名称以“com.supermap.”开头的 JAR 包。请确保这两个位置的组件包版本一致。

     

  6. 为什么启动 iServer 服务时,报以下类似错误:“java.lang.UnsatisfiedLinkError: D:\SuperMap\SuperMap Objects Java 6R\Bin\Wrapj600.dll: 找不到指定的程序”?

    答:可能的原因及解决办法有:

    (1) JRE/JDK 版本过低或者不兼容。请下载安装 JRE(1.8及以上版本)并设置环境变量,即设置 JAVA_HOME 为 JDK 目录(如果安装的是 JRE,则设置 JRE_HOME 为 JRE 目录)。

     

  7. 为什么启动 iServer 服务时,报端口占用错误,导致 iServer 服务启动失败?

    答: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" ……>。

     

  8. 为什么升级到 SuperMap iServer Java 6R(2012) SP2 后,原有许可不可用?

    答:SuperMap iServer Java 6R(2012) SP2 新增了新功能的许可管理,需要使用新版本的 SuperMap License Manager 重新配置许可,配置过程参见许可配置说明

     

  9. 使用 SuperMap iServer 7C 进行扩展开发时,如果用到了 SuperMap iObjects Java 7C,是否需要购买 SuperMap iObjects Java 7C 的许可?

    答:不需要。但需要注意的是:扩展开发的程序将只能部署在 SuperMap iServer 7C 中,不能单独发布。

     

  10. 为什么运行 SuperMap iServer 过程中报如下错误:“java.lang.OutOfMemoryError: unable to create new native thread”?

    答: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 为更小值。

     

  11. SuperMap iServer 服务崩溃的可能原因有哪些?

    答:有如下可能原因:

    (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 8.5.x 即可。

     

  12. SuperMap iServer 在非正常关闭的情况下,服务为什么会自动重启?

    答:这是为了在 iServer 服务异常的情况下,通过服务自动重启来保证 iServer 继续正确工作。自动重启功能在如下场景中有效:

    • iServer Windows/Linux/AIX 安装包,以命令行方式启动时
    • iServer war 包,在 Tomcat 容器中,以命令行方式启动时

    自动重启功能不适用如下场景:

    • iServer 以 Windows 服务启动时
    • iServer war 包,在非 Tomcat 容器中启动时
    • 所使用的 JDK/JRE 路径(通过环境变量JAVA_HOME/JRE_HOME指定)中包含了括号

    注意:SuperMap iServer 可通过执行 shutdown.bat/shutdown.sh(位于【SuperMap iServer 安装目录】\bin 下)结束服务,来正常关闭,详细请参见服务器的启动/停止

    系统配置文件(iserver-system.xml)中<properties> 节点下的<restartWhenCrash>参数,可用于控制是否启用该功能。

     

  13. SuperMap iServer 在 Tomcat 等 Java Web 容器中,以 Windows 服务形式启动时,日志文件放在哪里?

    答:当 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。

     

  14. 在 windows 系统上启动 SuperMap iEdge 时,如果在控制台中出现:The APR based Apache Tomcat Native library which allows optimal porformance in production environments was not found on the java.library.path,怎么办?

    答:此条信息不影响 iEdge 服务。可以将【SuperMap iEdge 安装目录】\bin\x64(或 x86)目录下的 tcnative-1.dll 动态库文件拷贝到【SuperMap iEdge 安装目录】\bin 目录下即可。需要注意的是,x64 目录下的 tcnative-1.dll 动态库文件对应的 windows x64 系统, x86 目录下的 tcnative-1.dll 动态库文件对应的 windows x86 系统,用户需要根据自身的操作系统类型拷贝相应目录下的 tcnative-1.dll 动态库文件到 bin 目录下。

     

  15. 停止 iServer 时,bin 下为什么会生成 *.mdmp 文件,导致磁盘占用过多?

    答:停止 iServer 时,请使用 shutdown.bat/sh,而不是 Ctrl+C 命令。

     

  16. 如果iServer所在的操作系统配置了多个IP,如何指定iServer服务所使用的IP?

    答:您可以通过修改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

     

  17. 在AIX系统上安装iServer时,运行了install.sh后,为什么安装进度条显示不完整?

    答:安装进度条显示不完整是因为您的AIX系统没有安装图形界面。该显示效果不影响iServer的服务启动,但是为了更好的使用效果,建议您安装图形界面后再开始使用iServer。

     

  18. 为什么在 Tomcat6 上部署 SuperMap iServer 8C 的war包,浏览服务时出现异常:java.lang.NoClassDefFoundError:javax/servlet/AsyncListener、java.lang.ClassNotFoundException:javax.servlet.AsyncListener?

    答:原因是 iServer 用到了 Servlet 3.0 的异步请求功能,而 Tomcat6 中使用的是 Servlet 2.0,不包含此功能。解决方法是将 Tomcat 中 Servlet API 2.0 升级至 3.0。

     

  19. 在SUSE环境下部署iServer后,报以下错误:“mmap failed for CEN and END part of zip file ”,应如何解决 ?

    答:您可以通过以下三种方法解决:

    (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 版本。

     

  20. 启动 iServer 多进程后,为什么会出现警告信息“文件名或扩展名太长”,同时 iServer 无法正常运行?

    答:原因是解压 iServer 时目标路径过长。解决方法是减少 iServer 安装目录层级,或缩短解压后文件夹名称。例如将压缩产品包放在磁盘根目录下再进行解压。

     

  21. 为什么启动 iServer 时使用的是环境变量的 UGO 而不是 iServer 包内的 UGO?

    答:当 iServer 产品包所在的路径包含 '&' 符号,启动 iServer 时会使用环境变量的 UGO 而不是包内的 UGO。

     

  22. 在 Windows Server 系统中启动 iServer 崩溃,报错 appcrash?

    答:将 %iServerROOT%\support\jre\bin 目录下的 java.exe 和 javaw.exe 文件的兼容性改成 Windows 8,然后重启。

     

  23. SuperMap iServer 启动报错 [SQLITE_BUSY]  The database file is locked (database is locked)?

    答:当 SuperMap iServer 尚未完全关闭时又重新启动 SuperMap iServer 会出现 SQLite 库被锁定的现象,这是由于 SuperMap iServer 守护进程仍有驻。解决办法:

    Linux环境:

    先使用 ps -ef | grep iserver 命令查看 SuperMap iServer 进程,再 kill 掉该进程后重启 SuperMap iServer。

    Windows环境:

    任务管理器中先结束掉 SuperMap iServer 的 Java 进程,再重启SuperMap iServer。

     

  24. 在 Docker 环境中启动 iServer 镜像时,容器日志提示“无法XX, 权限不够”?

    答:是因为容器内部用户不具有 root 权限,需要您在 Docker 启动命令中添加如下参数才能获得 root 权限:

    --privileged=true

          如:

    docker run --name iserver1 -d -p 8090:8090 --privileged=true -v `pwd`/my_opts:/opt/iserverOPTs supermap/iserver

     

  25. 如何配置开启 Tomcat 软连接(符号链接)?

    答:当您不能通过 iServer 访问软连接资源时,请打开【iServer安装路径】/conf/context.xml 文件,在 <Context> 元素下添加如下内容:

    <Resources allowLinking="true"/>

     

  26. 更换不同许可类型时,配置许可不生效,如何解决?

    答:更换不同许可类型时,需要将 iserver-system.xml(位于【SuperMap iServer 安装目录】\webapps\iserver\WEB-INF目录中)文件中的<licenseMode>...</licenseMode>节点和<license>...</license>节点中的内容删掉,然后重启 iServer,再次配置许可即可生效。

     

  27. 试用许可如何切换正式网络锁?

    答:首先需要确定当前许可中心还有空闲的正式许可且当前配置机器可以在许可中心中看到正式锁标识。然后找到webapps\iserver\WEB-INF\iserver-system.xml,删除 licenseMode 和 license 节点,重启 iServer。

     

  28. 试用许可如何切换 Web 许可?

    答:请确认 iServer 所在机器上没有其它的许可(正式许可、试用许可),如有其他许可将优先使用其他许可。然后找到 webapps\iserver\WEB-INF\iserver-system.xml,删除 licenseMode 和 license 节点,重启 iServer。重启后再进行许可配置,选择 Web 许可,填写 ws://ip:9183 进行配置(不是http)

     

  29. 如何删除本地初次安装的试用许可?

    答:删除 C:\Program Files (x86)\Common Files\SafeNet Sentinel\Sentinel LDK\installed\99235 然后重启或停止许可服务。

     

  30. 按核许可无法配置?

    答:iServer 按核许可需要服务器 CPU 核数不大于 iServer 按核许可限制的核数,如许可是 36 核,但机器是 48 核 则无法使用,若机器是 36 核则可以使用。

     

  31. 不限核许可如何配置服务节点扩展模块

    答:确保当前环境没有许可后,启动 iServer,在初始化 的许可配置页面中输入主节点地址,例如:http://192.168.1.23:8090/iserver。

     

  32. Web 许可如何配置服务节点扩展模块

    答:如当前 iServer 所在机器上没有其它的许可(正式许可、试用许可),启动后直接在初始化的许可配置页面里输入 Web 许可服务地址即完成配置。如当前环境有正式、试用许可, 在webapps\iserver\WEB-INF\iserver-system.xml 中添加如下配置,并重启iServer。

    <licenseMode>WebLicense</licenseMode>

    <webLicenseSetting>

            <url>ws://127.0.0.1:9183</url>

            <enabledmodules>

            <string>SERVICE_NODE_ADDITION</string>

            </enabledmodules>

            <masterServerAddress>http://192.168.1.23:8090/iserver/</masterServerAddress>

    </webLicenseSetting>

     

  33. 传统硬件锁如何跨网段配置许可

    答:通过当前机器的浏览器访问 http://IP:1947,输入插锁许可服务器 IP 并保存。

     

  34. 如何解除某机器占用的硬件锁许可

    答:解决办法有 2 种。1.在插锁服务器上使用浏览器访问 http://IP:1947 ,该页面可以看到当前硬件锁链接情况,断开期望解除占用的机器即可;2. 在插锁服务器上通过 Windows 桌面许可中心(SuperMapLicenseCenter)断开期望解除占用的机器。

     

  35. 为什么在 Tomcat 和 WildFly 上使用 SuperMap iServer 的 war 包时,URI 不兼容中文路径?

    答:一般情况下,Tomcat数据编码不是“utf-8”,也就不兼容中文路径,即 URI 中包含中文时会出错。因此,为使 SuperMap iServer 的 war 包兼容中文路径,部署 war 包的 Tomcat服务器的数据编码需要改为“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"/>
    

     

  36. 在 WebLogic 上部署成功的 iServer 服务,通过 WebLogic 的管理页面更新之后,再次访问时出现“HTTP 500 内部服务器错误”?

    答:这是由于部署 iServer 服务时需要加载自带的动态链接库,首次部署时该动态链接库已经被加载,导致更新时加载失败。解决方法:更新 iServer 之后,请在 WebLogic 的管理页面重启部署 iServer 所用的服务器(Server)。

     

  37. 为什么在 WebLogic 上部署 iServer 服务失败,并抛出 PermGen space 的错误信息?

    答:这是因为 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%  
    

     

  38. 在 Linux 系统下使用 iServer 时,如何设置才能监视 iServer 与数据库型数据源的连通情况?

    答:在启动 iServer 服务前,以 root 用户执行如下命令:

    echo 5 > /proc/sys/net/ipv4/tcp_retries2

    这样,当数据库连接断开时,iServer 中将提示:****工作空间连接失败。

     

  39. 为什么在 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 ”?

    答:推荐的解决方法为:在【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 文件。

     

  40. 为什么有时候在Linux下启动 iServer 或 iPortal 时出现以下错误:“../libWrapj.so:libpng12.so.0:无法打开共享对象文件;没有那个文件或目录?”

    答:由于当前系统中缺少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完成安装

     

  41. 为什么在 SUSE Linux Enterprise 11 SP2 和 SP3 操作系统上,无法正常启动 iServer,或发布服务时出现崩溃现象?

    答:在 SUSE 上需要安装第三方数据库客户端才能正确加载 sdx 数据引擎。一个 sdx 加载失败会影响其他 sdx 数据引擎的加载,从而导致无法打开任何数据源或系统崩溃。需要依赖第三方数据库客户端的 sdx 数据引擎文件有:libSuEngineSRDB.sdx、libSuEngineOracle.sdx、libSuEngineDMCI.sdx、libSuEnginePG.sdx、libSuEngineOsp.sdx、libSuEngineAltibase.sdx、libSuEngineDB2.sdx、libSuEngineKDB.sdx、libSuEnginePGis.sdx、libSuEngineKadb.sdx、libSuEngineSpatialite.sdx。

    解决方法是:删除 $SuperMap Objects Java_HOME\bin 中不需要的数据库引擎文件(上述列表中的*.sdx)。例如:需要使用 Oracle 数据源,则首先安装 Oracle 客户端,然后删除 libSuEngineOracle.sdx 之外的上述所有*.sdx,再启动 iServer 服务。以此类推,如果需要使用其他数据库引擎,也进行相应的处理。

     

  42. 为什么在 Linux 系统上启动 iServer 服务时,报如下类似错误:“Unable to set localhost. This prevents creation of a GUID”?

    答:出现这种现象时,请在 /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      
                    
    

     

  43. Linux 系统没有图形界面,如何通过命令行方式配置 SuperMap iServer 7C 使用许可?

    答:通过 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 系统下的许可配置说明

     

  44. 在 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 … “,如何解决?

    答:因为该 Linux 64 位操作系统缺少 32bit 支持库,所以运行出错。解决方法是需要安装支持32位的支持库。iServer 提供了自动检测与安装依赖库的工具 dependencies_check_and_install.sh。您只需要在启动 iServer 前,在【SuperMap iServer 安装目录】\SuperMapiServer8C\support下执行如下命令运行:

    ./dependencies_check_and_install.sh install -y

    您也可以加载系统盘补充安装相关库,或到相应系统的官网上获取相关库来安装。需要安装的32位支持库包括:

    • 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)

     

  45. 如果在 Hyper-v 上运行的 Linux 操作系统中,安装7C 许可失败,或在重启系统后许可不可用,该如何解决?

    答:如果遇到许可安装失败,或安装过的许可不可用,可以通过以下方法把驱动卸载后重新安装。

    (1)把/var/hasplm 目录删除,命令如下:

    cd /var

    rm -rf hasplm

    (2)卸载许可驱动:

    cd /SuperMapiServer7C/support/SuperMap_License/Support/aksusbd-2.2.1-i386

    ./dunst

    (3)重新安装许可驱动:

    ./dinst

     

  46. 产品升级到7C 后为什么 Linux 操作系统上有时候出现中文乱码问题?

    答:目前已知可能出现的乱码问题与相应的解决方式有以下两种:

    (1)WFS 服务和 Data Rest 服务中的中文数据集名显示乱码。如果出现这种现象请将数据升级到7C 版本。

    (2)缓存目录和文件名显示乱码。这是由于系统的 LANG 环境变量与 iServer 使用的 LANG=zh_CN.UTF-8 不同导致的显示问题,不影响功能使用。可将系统的 LANG 也修改为 zh_CN.UTF-8,以保证显示正确。

     

  47. 在较低版本的 Linux 系统上使用7C 产品时,服务无法启动,support/objectsjava/bin/libWrapj.so 出现 libgomp.so 相关的错误,如何解决?

    答:可能是因为系统缺少了相关的动态库文件所致,目前已知的文件有:libgomp-4.4.0-6.el5.i386.rpm 和 libgomp-4.4.0-6.el5.x86_64.rpm。

     

  48. 在 Linux 操作系统上安装 SuperMap License Center 许可驱动程序时,有时会出现:“hasp_update failed with status 65”错误信息,如何解决?

    答:该错误提示可以忽略,当您重复安装许可驱动时,会出现该错误提示信息,表示当前计算机已导入过90天的试用许可,试用期内不影响许可的正常使用。如果已经过了90天试用期,请联系销售人员申请继续试用或正式购买(可通过在线商店购买短期许可)。

     

  49. 为什么使用远程工具(如:putty、SecureCRT、SSH)启动 Linux 机器上的 SuperMap iServer 7C 或 SuperMap iPortal 7C 服务后,访问服务首页报“Could not initialize class sun.awt.X11GraphicsEnvironment”或“系统环境检查不通过”错误,而在本机上启动服务,访问服务首页却正常?

    答:如果使用远程工具启动 SuperMap iServer 7C 或 SuperMap iPortal 7C 服务,需要首先登陆 Linux 机器,然后打开一个终端运行以下命令:

    (1)X:n&     在第 n 个屏幕上启动一个 XServer , n 为任意整数(如:22、30 等)。

    (2)export DISPLAY=:n.0     设置 DISPLAY 变量到本机的 XServer 服务器上,然后再重启服务即可。

     

  50. 为什么 Linux 系统中(以 Ubuntu 为例)启动 iserver 后,在快速发布工作空间为服务时,会提示“工作空间密码有误”,catalina.out 里有如下类似错误:“java.lang.NoClassDefFoundError:Could not initialize class java.awt.Toolkit”?

    答:出现以上类似提示或者错误报告时,是由于该 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 浏览器中发布服务时就不会报错了。

     

  51. 为什么 Linux 系统中,启用多进程以后,重启iServer时会启动失败?

    答:可能是因为该系统的 hostname 对应的 IP 与系统实际的 IP 不一致,导致多进程的服务无法启动。使用单机多进程时,需确认 hostname 对应的 IP 与 ifconfig 查询到的 IP 一致。如果不一致,则修改 /etc/hosts 中 hostname 对应的 IP,与 ifconfig 查询结果一致后,再启动 iServer 即可。

     

  52. 为什么在 Linux 系统中以普通用户身份运行 iServer,开启 iServer 多进程后,重启 iServer 时启动失败,并在控制台或日志中报如下错误:java.lang.OutOfMemoryError:unable to create new native thread

    答:这是由于Linux操作系统中对普通用户使用的资源进行了限制。例如最大允许使用内存,最大允许启用的进程或线程数等。您可以通过 ulimit -a 命令查看这些资源限制情况。

    在多进程模式下,每个 Worker 会启动约200个线程。当 iServer 中启动过多 Worker,总线程数接近或达到允许普通用户启用的线程数时,就会出现此问题。

    解决方法:以 root 用户身份执行 ulimit -u 4133725 命令,增加允许普通用户启用的最大线程数。

     

  53. 在中间件上部署的 iServer war 包,如何配置使其可以支持跨域请求?

    答:SuperMap iServer 的 war 包默认没有开启支持跨域请求,可以通过配置中间件的配置文件,使其支持。这里以 Wildfly 为例来介绍:

    在【WildFly 根目录】\standalone\configuration\standalone.xml 中的 <subsystem xmlns="urn:jboss:domain:undertow:3.1">标签下添加2个新标签:

    (1)在<host name="default-host" alias="localhost"> 标签下添加 <filter-ref name="Access-Control-Allow-Origin"/>;

    (2)在 <filters>标签下添加 <response-header name="Access-Control-Allow-Origin" header-name="Access-Control-Allow-Origin" header-value="*"/>

     

  54. 在 Tomcat 上使用 war 包时,控制台中文显示乱码?

    答:原因是【Tomcat 路径】\conf\logging.properties 文件中的编码方式与 iServer 产品包编码方式冲突,可以通过将 logging.properties 文件中涉及编码的代码行都注释掉或将编码方式都改成 GBK 编码

    注释代码行:

    #1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8

    将编码方式改为 GBK:

    1catalina.org.apache.juli.AsyncFileHandler.encoding = GBK

     

  55. 在 Linux 系统上启动 iServer DataStore,存储类型选择瓦片或二进制后,iServer DataStore 初始化失败,并且 iServer DataStore 控制台显示“瓦片或二进制数据库配置失败”,原因是什么,该如何解决?

    答:原因是:

    当存储类型选择瓦片或二进制后,iServer DataStore 在初始化时会启动 MongoDB 数据库,而启动 MongoDB 数据库会使用 /tmp/mongodb-27017.sock 文件,如果之前有其他用户启动过 MongoDB,就会产生该文件,并且该文件的拥有者是之前的用户,而当前用户是没有权限去读写该文件的,如此将导致 Mongodb 启动失败,进而导致 iServer DataStore 初始化失败。

    具体的解决办法如下:

    检查 /tmp 目录下是否存在 mongodb-27017.sock 文件,如果存在,确认该文件拥有者是否为当前启动 iServer DataStore 的用户,如果不是,请联系该文件的拥有者或者 root 用户删除该文件,并重新初始化 iServer DataStore。

     

  56. 在 Tomcat 中部署 war 包,通过 webManager 快速发布服务时,为什么远程浏览功能不能正常使用,不显示系统文件目录,该如何解决?

    答:原因是tomcat包默认不支持URL路径中包含特殊字符"|",而远程浏览相关功能的URL中会出现"|"。解决办法是:用文本编辑器打开tomcat根目录下conf文件夹下的catalina.properties 文件, 取消“tomcat.util.http.parser.HttpParser.requestTargetAllow=|”的注释,从而使 Tomcat允许处理带 "|" 的 URL 路径。

     

  57. 在 Tomcat 中部署 war 包,访问服务时,控制台出现 “ java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986” 的异常信息,该如何解决?答:原因是服务请求 url 中包含了受限制的特殊字符。解决方法:打开【Tomcat安装目录】/conf/catalina.properties文件,在文件末尾取消 tomcat.util.http.parser.HttpParser.requestTargetAllow=| 的注释,并将特殊字符添加在“=”后,即允许处理这些特殊字符。例如添加“{”和“}”,改为:tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}。

     

  58. 在linux系统下spark集群主节点启动后,子节点无法加入到主节点或者log日志中报:WARN Utils: Service 'sparkWorker' could not bind on port 0. 时,该如何解决?答:用命令cat /etc/hosts查看/etc/hosts 文件,并修改,使当前机器ip或者127.0.0.1 之后对应的主机名配置正确。

     

  59. 在Suse操作系统上运行 iObjects Java应用程序时出现:java:symbol lookup error:/opt/Bin/libSuGraphicsQT.uge:undefined symbol?

    答:在产品包Bin目录下找到 *.sdx 扩展名的文件,注意只保留 libSuEngineUDB.sdx,libSuEngineOGC.sdx,libSuEngineImagePlugin.sdx 这三个 *.sdx 扩展名的文件,其他的 *.sdx 扩展名的文件全部删除。经过处理后,若执行地图出图时不成功,需要进一步删除产品包Bin目录下的  libSuFileParser3DModel.fps 文件。

           

  60. 在东方通中间件上部署 war 包,从其他服务器上调用 iServer 服务出现跨域问题,该如何解决?

    答:需要通过修改 war 包中的 web.xml 配置文件来进行 TongWeb 上 iServer 的跨域访问相关配置。详情请参见:TongWeb 上的跨域配置

     

  61. 在 Linux 环境下,如果出现类似发布带 SVG 符号的工作空间为 REST 地图服务后,浏览地图时 iServer 崩溃或发布无密码的工作空间时提示输入工作空间密码等问题,可能原因是什么?

答:1. 发布带 SVG 符号的工作空间为 REST 地图服务后,浏览地图时 iServer 崩溃,可能的原因是当前是非图形界面的 Linux 系统环境,您可以通过配置 SuperMap.xml(位于 %SuperMap iServer_HOME%/support/objectsjava/bin 目录中)中的 PreLoadQTPlugins 属性改为 true 来解决。

                 2. 发布无密码的工作空间时提示输入工作空间密码,可能的原因是当前系统环境缺失依赖库,您可以通过安装缺失的依赖库来解决。具体参考:检测并补充依赖库,来检测并补充缺失的依赖库。

 

  1. 为什么访问 REST 服务或 WFS 服务时出现错误码500,并在日志中看到“警告:Java heap space”?

    答:Java 虚拟机内存对于某些服务不够用,所以出现上述错误。解决方法:修改 Java 虚拟机内存参数为更大,例如 -Xmx1024m,然后重启服务。

     

  1. 使用二维地图缓存时,需要注意什么?

    答:1. 制作二维地图缓存时,需要注意机器的 DPI,生成二维地图缓存的机器的 DPI 需要跟 SuperMap iServer 服务器所在机器的 DPI 一致,才能保证缓存可用。

                     2. 使用二维地图缓存时,请勿将缓存作为数据源保存在工作空间中。在 SuperMap iServer 中发布时,请您直接发布为地图服务。

     

  1. 为什么通过 JavaScript 的 httpxmlrequest 对象获取“World Map”的地图服务时正常而获取“世界地图_day”的地图服务时却没有结果?

    答:对于 URI 地址中的中文地图名称需要进行编码,比如对“世界地图_day”进行编码 var mapName= encodeURI(“世界地图_day”);使用编码后的地图名称的 URI 是 var uri="http://192.168.115.68:8090/iserver/services/maps/rest/maps/"+mapName+".json"。

     

  1. 为什么获取透明图片时,并不透明,背景为黑色?

    答:24 位以下的颜色深度不支持图片透明显示,此时需要检查操作系统的颜色深度设置,需要设置为24位或以上才支持图片透明显示。有如下几种情况影响 SuperMap iServer 出透明图片:

    (1) SuperMap iServer 服务器所在操作系统本身的颜色深度设置小于 24 位;

    (2) 远程连接来启动 SuperMap iServer 时,远程连接的显示选项中,颜色深度的设置小于 24 位;

    (3) SuperMap iServer 服务器所在的操作系统中,RDP-Tcp 属性设置中,客户端设置的“颜色深度最大值”一项小于 24 位,此时通过远程连接该服务器启动服务。

     

  1. 为什么有时候发送请求时服务器无法正确识别请求,即出现返回乱码、请求失败或者得到错误结果的情况?

    答:发送的 HTTP 请求没有使用 UTF-8编码导致服务器无法识别所致。对于非 ASCII 字符,SuperMap iServer 默认使用 UTF-8编码,如果不是,则无法正确解析。

     

  2. 为什么 SuperMapCloud 表述方式下,地图与云服务图层出现偏差;Tianditu 表述方式下,地图与天地图服务的图层出现偏差?

    答:由于 SuperMap 云服务的数据、天地图服务的数据按照国家有关规定进行了脱密处理,与原始数据不一致。

     

  3. 在浏览海图数据、标签专题图、符号专题图等时,出现部分要素被截断、显示不全的现象,应如何解决?

    答:请将 SuperMap iObjects Java 根目录\bin\SuperMap.xml 中的 IsMapInflated 属性改为 true。iServer 自带的 SuperMap iObjects Java 位于 %SuperMap iServer Java_HOME%/support/objectsjava 目录中。

     

  4. 通过某比例尺获取的地图图片为什么与以前版本产品中同样比例尺下获取的地图图片不一样?

    答:这是由于 SuperMap 产品体系中的比例尺是基于屏幕分辨率的,目前屏幕分辨率默认值为96dpi,而在 SuperMap iServer Java 6R(2012) 及以前的产品中,屏幕分辨率默认为76.2dpi,此变更从 SuperMap iServer Java 6R(2012) SP1开始生效。关于地图比例尺的详细介绍,请参考比例尺的定义

     

  5. iServer 中对 REST 资源进行 POST 请求时,得到的结果资源 ID 为什么与 REST API 请求示例中的不一样?

    答: newResourceID 作为操作结果资源的 ID 是一个随机数,如对 datasetBufferresults 资源执行 POST 请求后得到的结果资源 datasetBufferresult 的 ID,因此每次执行 POST 请求得到的结果子资源 ID 是不同的。

     

  6. 为什么对 iServer 提供的地图服务进行查询时会出现如下错误“java.lang.OutOfMemoryError: Java heap space”?

    答:可能是由于查询时返回的结果记录集中包含的对象数量过多造成的。可以采用以下方式限制一次返回的结果记录数从而避免此类问题:

    (1)客户端进行查询时,可以通过 expectCount 参数设置期望返回结果的记录数,使之限制在服务端可接受范围内。

    (2)服务器端可以设置默认返回记录数,iServer 提供了 queryExpectCount 配置项(默认值为1000)来设置默认返回记录数,详见通过 XML 文件配置服务提供者

     

  7. 为什么启动 SuperMap iServer 后,控制台会有网络数据检查不通过的警告?

    答:启动 iServer 服务时后台会对网络数据集和转向表进行检查,并抛出针对网络数据的警告,不影响其他功能的使用。如果需要使用交通网络分析功能,则应该根据警告日志调整网络数据以保证网络分析功能的正确性。

     

  8. 为什么 SuperMap iServer 提供的 WMTS 1.0.0服务在常用工具 Gaia 中打不开?

    答:Gaia 只识别<WGS84BoundingBox>节点,不识别<BoundingBox>节点,而 iServer 提供的 WMTS100接口的 GetCapabilities 中包含3857对应的<BoundingBox> 节点,所以在 Gaia 中无法打开 WMTS100服务。解决这个问题,需要用户自定义 WMTS 接口,比例尺集合应选择投影4326对应的比例尺集: GlobalCRS84Scale,GlobalCRSPixel,GooleCRS84Quad,ChinaPublicServices,当数据自身投影为4326时,也可以选择 Custom。

     

  9. 浏览地图时,为什么会出现同一标签中字体不同的情况?

    答:因为部署 iServer 服务的系统中不存在该标签所使用的字体库。

    解决方法是:在该系统中,安装该标签所使用的字体库。例如:Linux下字体库的安装目录为 %SuperMap iServer_HOME%/support/fonts。详细说明请参见:安装后配置

     

  10. 在集群环境下,为什么有时进行地图查询或者数据查询时,查询结果错误或者找不到要查询的数据集?

    答:可能原因:集群环境下,各节点提供的相同地图或数据服务资源对应的数据不一致,如:各相应数据的工作空间名称相同、数据源名称相同  、地图名称相同,但是内部数据集不同,导致负载均衡时认为各节点是一致的服务,而实际进行执行查询的节点刚好使用的是不一致的数据导致查询失败。

     

  11. 使用SuperMap iServer 将工作空间中的地图发布为 REST 地图服务后,发现矢量数据部分丢失、标签专题图的部分标签重复,如下图所示:

    答:此问题一般发生在包含点矢量数据的地图,在发布为地图服务后,点符号部分丢失,解决的办法是:在地图中,将该点数据图层的“显示完整标签”设置关闭即可。具体操作有以下两种途径:
    1. 若使用SuperMap iDesktopX桌面,打开地图中该点图层的图层属性面板,将“显示完整标签”勾选状态取消,即可关闭该设置,如下:

    2. 若使用SuperMap iDesktop桌面,通过导出地图中该点图层的图层属性模板:

    然后修改图层属性模板中的“FullLabelEnabled”属性值为“FALSE”,保存模板:

    最后将该图层属性模板重新有应用到该点数据集上即可,而原来的点图层可以移除地图。
    关闭问题图层的“显示完整标签”设置后,保存地图,重新发布该工作空间中的地图即可

     

  12. 为什么 iServer 服务发布成功后,访问资源时出现错误码404,资源访问不到?

    答:原因是服务请求 url 中的自定义名称里包含了“.”符号。在 iServer 中,可能出现在 url 里的自定义名称,如地图名、数据集名等,不能包含“.”符号。

     

  13. 为什么 iserver 发布的 WMTS1.0.0 服务在 QGIS 中加载不了?

    答:原因是 QGIS 在加载 WMTS 服务时需要添加参数,即在 WMTS 服务 URL 后添加参数:" ?SERVICE=WMTS&REQUEST=GetCapabilities"。

     

  14. 发布三维服务后,通过WebGL3D表述加载场景时报错,是什么原因?

    答:如果发布三维服务后,通过WebGL3D表述加载场景时,报如下错误:

    原因是: 您浏览三维场景所在机器的显卡驱动版本较低,建议您升级显卡驱动。

     

  15. 服务发布成功后,为什么会出现获取服务内容不正确的情况?

           答:可能的原因是,您发布的服务中图层名称、数据集名称或数据源名称中包含特殊字符。在 iServer 中,url 中的图层名称、数据集名称、数据源名称等不能包含特殊字符,如:+、 空格、/、?、%、#。

 

  1. 发布 TPK 瓦片为地图服务后,浏览显示白图?

    答:是因为从 SuperMap  iServer 10i 开始,对 TPK 瓦片存放路径的格式有要求,当 TPK 的存放路径不符合该格式要求,浏览发布的地图服务会显示白图。其格式要求为 v101/Layers/_alllayers/<层级> 或 Layers/_alllayers/<层级>,其中 Layers 可以替换成中文“图层”,示例如下:

     v101/Layers/_alllayers/L00

    Layers/_alllayers/L00

     v101/图层/_alllayers/L00

    图层/_alllayers/L00

     

  1. 使用 MapboxGL 表述浏览地图,为什么个别图层不显示或显示内容与地图实际内容不相符?

答:这种情况大多是因为 SuperMap 的一些符号或者图层设置 MapBox 风格不支持。使用 MapboxGL 表述浏览地图为动态获取矢量瓦片出图的过程,需要基于一幅有效的矢量地图。SuperMap 地图要素的符号化、图层设置等绝大多数都能被 MapBox 样式支持;但是,由于 MapBox 风格显示表达与 SuperMap 不同,所以矢量地图的制作和矢量瓦片的生成存在一些局限性和注意事项,具体如下:

(1)在生成矢量瓦片时,将对节点密集的对象进行抽稀,减少节点冗余,在大多情况下,这种抽稀在视觉上将不太明显,但也存在特殊情况,如抽稀后,对象发生明显变形。因此,建议您确保在不同显示比例尺下,地图对象具有合理的复杂度。

       若您想关闭抽稀功能,可在【iServer根目录】/support/objectjava/supermap.xml 文件中进行设置,将配置项 <MVTSimplifyGeometry> 和 <MVTSimplifyPGIS> 设置为 false 即可。

(2)MapBox 支持几乎所有的 SuperMap 点符号、常用道路等线型符号、常用的面填充符号,但复杂符号可能无法正确显示。对于 MapBox 不支持的一些符号,根据符号类型,将显示为对应的圆点、实线、纯色填充。此外,MapBox 样式对于面符号轮廓线的支持与线型符号的完全一致。请注意:

(3)MapBox 样式对 SuperMap 地图文字效果的支持也存在局限性,因此,需要您关注地图中所有文字的风格设置,避免使用 MapBox 样式不支持的字体效果。目前,MapBox 仅支持加粗轮廓、加粗斜体效果,不支持阴影、下划线、删除线等效果。请注意:

(4)MapBox 样式只支持 SuperMap 部分类型的专题图,如果地图中包含了不支持的专题图,生成矢量瓦片时将忽略这些专题图层。支持的专题图类型仅包括单值专题图、分段专题图、默认标签专题图;不支持单值标签、分段标签、复合标签、矩阵标签等专题图。 请注意:

(5)由于 MapBox 风格显示表达与 SuperMap 不同,所以在一些地图显示细节方面,二者也存在差异。

  1. 如何优化地图服务、数据服务在 SQL 字段查询时的查询速度?

答:当您需要对地图服务、数据服务进行 SQL 字段查询时,建议您在发布服务前在 SuperMap iDesktopX 中对数据源内需要查询的字段先行设置字段索引,从而提高查询效率。

 

  1. 为什么通过由 UDBX 数据源发布的 REST 数据服务中的 fields 资源向空数据集添加 JSONB 类型字段时,执行失败?

答:因为 JSONB 字段仅为 PostgreSQL、PostGIS 数据源仅有的字段类型,即除了 PostgreSQL、PostGIS 数据源外,其他数据源发布的 REST 数据服务都不支持添加 JSONB 类型的字段。

 

  1. 在 Linux(x64) 或 Linux(arm64) 系统上发布 REST-视频流服务成功,但本地没有生成视频文件对应的 index.m3u8流文件,可能是什么原因,应该如何解决?

答:可能是缺少依赖库导致视频文件推流失败。以Linux(arm64) 环境为例,您可通过如下步骤查找缺少的依赖库:

1)将【产品根目录】/webapps/iserver/WEB-INF/lib/ffmpeg-6.1.1-1.5.10-linux-x86_64.jar解压

2)进入org/bytedeco/ffmpeg/linux-x86_64/目录,执行ldd ffmpeg。将列出所有依赖库和缺库情况。

3)下载、安装缺少的依赖库,即可解决。

 

  1. 为什么在 ArcPro 中加载 iServer 发布的 wmts-arcgis 服务后,预览为白图?

    答:可能的原因是您对地图服务开启了缓存。请检查 iserver-services.xml 文件中您发布的地图服务对应的地图服务组件配置节点中 useCache 参数的值,若为 true,请修改为 false 关闭缓存,再刷新 ArcPro 进行预览即可解决。

     

  1. 使用服务管理器中的“快速发布服务”向导发布文件型工作空间时,为什么“本地浏览”按钮不可用?

    答:可能存在如下两种情况:

    (1)服务不在本地,请使用“远程浏览”进行选择;

    (2)IE9、IE10、Chrome、Safari 下,由于浏览器的安全控制,SuperMap iServer 无法获取欲发布工作空间的准确路径,请使用“远程浏览”进行选择。

     

  1. 如果忘记 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 首页时,系统会自动跳转到创建管理员账户界面,此时只需重新创建管理员账户即可。

     

  1. 通过服务配置文件修改服务实例名称后,原有授权信息为什么失效?

    答:通过服务配置文件修改服务实例名称(即“服务组件/服务接口”)后,服务实例会被系统视为全新的服务,默认为“任何用户都可以访问”。管理员可以在服务管理器中对新的服务实例重新授权并手动删除 shiro.ini(WEB-INF 下)中原服务的授权信息,或直接手动修改 shiro.ini,将原服务实例名更新为新的服务实例名。

    修改 shiro.ini 的方法是,找到[instances]节点,更新服务实例名称并与授权角色对应,格式如:

    <服务实例名称>= PRIVATE,role1,role2

    如果需要重新命名服务实例且保留授权信息,建议通过服务管理器(WebManager)来修改,这样系统会自动更新服务实例名匹配原有的授权角色。

     

  1. 为什么启动服务后访问服务管理器(WebManager)时,服务器返回401?

    答:如果以前在同一浏览器使用了 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 信息。

     

  1. 为什么配置 CAS 认证服务器后,单点登录认证失败?

    答:如果 CAS 认证服务器和 GIS 服务器不在同一台机器上,由于两台机器的时间差,可能导致登录验证不成功,这时需要调整两台机器的时间保持一致,或延长容错时间间隔,iServer(或 iPortal、iEdge)默认的时间差容限为 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

    ...

     

  1. iServer 资源回收功能不可用,应如何解决?

    答:如果您配置的 JAVA 环境变量值中包含空格,如 D:\Program Files\java_x64\jdk1.7.0_17_x64,将导致 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。 如图:

     

  2. iServer运行时出现响应速度变慢的情况,同时catalina.log日志文件中出现较多条INFO级别的异常信息,例如“java.io.IOException: 断开的管道”,或“java.io.IOException: 您的主机中的软件中止了一个已建立的连接”。应该如何解决?

    答:可以通过在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

     

  3. 分布式分析时,为什么创建的分布式分析任务总是一直处于运行状态,spark的任务执行详情页面报“SecurityManager:authentication disabled;ui acls disabled;users with view permission”?

    答:这是由于 iServer 所在的电脑是多网卡,且与所使用的spark集群的子节点不在同一网段。为了确保 Spark Worker 和 iServer 之间能够正常通信,需要在 iServer 中进行如下配置。

          配置方法:在【SuperMap iServer安装目录】/SuperMapiServer9D/support/spark/conf/spark-defaults.conf 中添加一行 spark.driver.host 192.168.*.*,如下所示。

    spark.driver.host 192.168.120.1

          其中,192.168.120.1为 iServer 所在机器与 Spark 集群子节点同一网段的IP。注:Spark集群子节点为 iServer 配置的分布式分析节点 或 Spark 集群配置的Spark Worker。

     

  4. 分布式分析时,创建的分布式分析任务总是一直处于运行状态,并且在 iServer 分布式分析服务的日志文件(distributeanalysis.log)出现类似的警告信息,警告信息如:WARN - Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources 的可能原因有哪些?

    答:可能原因如下:

      (1) 所应用的Spark集群没有可用的Spark Worker节点。

      解决方法:检查Spark集群的状态,查看是否有可用的Spark Worker节点加入。

      (2) 启动Spark Worker所需要的端口被占用。

      解决方法:设置环境变量export SPARK_WORKER_WEBUI_PORT={port}(即可用的Spark Worker端口)

      (3) 多网卡的情况下,启动的Spark Worker端口无法被绑定到启动Spark Worker所在机器的任意IP上。

      解决方法:设置环境变量export SPARK_LOCAL_IP=0.0.0.0。

      (4) 所应用的Spark集群无法通过机器名对应到正确的IP,以至于找不到Spark Worker节点。

      解决方法:Linux平台,/etc/hosts文件中主机名对应的IP错误,将其修改正确即可。

      (5) Spark集群的内存或者cpu资源不足。

      解决方法:您可以按照以下要求对【SuperMap iServer安装目录】/support/spark/conf/spark-defaults.conf文件中内存和核数进行配置。

        spark.cores.max    //spark集群应用的总核数 不小于2

        spark.executor.cores    //spark集群应用的总核数 不小于1

        spark.executor.memory    //spark集群应用的内存 不小于1g

     

  5. 在分布式分析服务中,当分析结果较大时,分析失败,且在 iServer 分布式分析服务的日志文件(distributeanalysis.log)出现类似的报错,报错信息为“org.apache.spark.SparkException: Kryo serialization failed: Buffer overflow”,如何解决 ?

    答:分布式分析内部采用Spark技术,基于多节点架构来实现。一个分布式分析作业会被分解为多个原子任务,且在多个工作节点中分布式执行。当所有工作节点执行完毕后,所有分析结果会被从工作节点收集到主节点。在收集的过程中需要将分析结果序列化为二进制,以及将二进制内容反序列化为对象。Spark 默认采用Kryo序列话机制。当待序列化或反序列化的内容太大,Kryo序列化器缓存区可能不足,就会报这种错。可以适当增大Kryo序列化器的最大缓存区大小。具体做法是,打开%SPARK_HOME%/conf/spark-defaults.conf文件,增加如下配置。

    spark.kryoserializer.buffer.max 1024m

     

  6. 启动分布式分析服务后,访问分布式分析页面空白,或者控制台报类似错误“Connect to localhost:6765[localhost/127.0.0.1]failed:Connection refused”,可能原因有哪些?

    答:可能原因:解压 iServer 时目标路径过长,超过了100个字符。

    解决方法:减少 iServer 安装目录层级,或缩短解压后文件夹名称。例如将压缩产品包放在磁盘根目录下再进行解压。

     

  7. Web打印服务输出的地图文档,图层中的字体不显示,显示成方框,该如何解决?

    答:Web 打印服务输出的地图文档,图层不显示字体,显示成方框,说明 Web 打印服务所在机器的系统字体库缺少该图层使用的字体,您可以通过以下两种方式解决:

    (1)在 Web 打印服务所在机器中手动安装图层所需的字体;

    (2)您制作地图时,图层使用的字体更改为黑体,那么输出的地图文档会默认使用 iServer 产品包中自带的黑体。

  8. 在 linux 环境下,Web 打印服务启动失败,报“- ERROR - Error loading font family; net.sf.jasperreports.engine.fonts.InvalidFontException:Error loading font "net/sf/jasperreports/fonts/icons/icons.ttf".”,如何解决?

    答:报错原因:Web 打印服务启动时会自动加载包内带的默认字体,需要系统支持自动加载字体功能,安装 fontconfig 插件。

    解决方案:安装 fontconfig 插件。Fontconfig 是字体相关的计算机程序库,用于配置、定制全系统的字体,或将字体提供给应用程序使用。

    Centos 系统可使用如下命令进行安装(需连接互联网):

    yum -y install fontconfig

    Ubuntu 系统可使用如下命令进行安装(需连接互联网):

    sudo apt-get install fontconfig

  9. 如何修改 WMS、WMTS、WCS 服务能力文档中 联系人姓名、联系方式、地址等信息

    答:进入“服务”->“服务装配”->“接口”页面,在“接口”页面找到相应的接口,进入接口的详情页,在“服务接口配置对象”下修订 WMS、WMTS、WCS 服务的相关信息。也可以在【SuperMap iServer 安装目录】/webapps/iserver/WEB-INF/iserver-services-interfaces.xml 文件中修改联系人姓名、联系方式、地址等信息,具体请参考通过 XML 文件配置服务接口

     

  10. Web 打印服务打印经过 HTTPS 加密后的 Web 服务,打印失败,可能的原因有哪些?

    答:原因可能是:https 服务器使用的 SSL 证书未经过权威机构认证,这样 java 中就缺少了验证此 https 服务器身份的客户端证书,所以需要先在 https 服务器中生成客户端证书,然后将生成的客户端证书提供给 iServer 使用。在 iServer 中只需正确导入客户端证书和填写 https 服务地址,即可成功打印经过 https 加密后的 Web 服务。具体配置请参考:情形二:https_服务器的_SSL_证书未经过权威机构认证

  11. 在linux环境下,使用处理自动化服务时,处理建模器页面工具列表显示为空,访问处理自动化服务接口下的工具列表出现错误码404,并在catalina.out日志中报“ERROR DefaultHttpProxy org.apache.http.conn.HttpHostConnectException: Connect to localhost:8097 [localhost/0:0:0:0:0:0:0:1] failed: 拒绝连接 (Connection refused)”?

    答:检查etc/hosts配置文件中是否存在localhost的内容,如果没有,则增加locahost的设置:

    127.0.0.1    localhost

  12. 通过 IIS 对 iServer 进行反向代理,无法登录代理后的 iServer 服务管理页面?

答:这是由于登录请求中建立加密隧道的 URL 过长,且系统限制了 URL 的最大字符数,将该值调大即可解决问题。

操作方法如下:在 IIS 所在计算机中的系统注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters 目录下,新建 DWORD(32位),并将其重命名为“ UrlSegmentMaxLength” ,修改基数选择“十进制”,数值数据填写 “1024”,点击确定后,重启计算机即可使注册表的修改生效。若仍未解决问题,可将数值调大,如 2048 或更大。

  1. 搭建集群时,需要注意什么?

    答:请根据具体应用的情况,进行以下设置:

    (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 中不能出现特殊字符“^”。

     

  1. 开启服务动态实例化管理,拉起一定数量的服务后报错内存溢出?

    答:拉起的服务数量越多对内存的要求越高,请根据您的需要在 catalina.bat 文件中修改 JAVA_OPTS -Xmx 参数的值,如:

    set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx1536m -Xss512k

     

  1. 分布式切图时,控制台为什么会提示“No buffer space available (maximum connections reached?):connect”?

    答:分布式切图过程中,向 FastDFS 存储上传切片时,占用的端口数增多,可能会达到本地操作系统的端口数的上限,所以出现上述问题。可通过如下方式规避:

    • Windows 系统

    运行 “regedit.exe”,打开注册表,找到 “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters”位置,添加“TcpTimedWaitDelay”,类型为 DWORD,值为30;添加“MaxUserPort”,类型为 DWORD,值为20000(调大系统可用端口数)。

    • Linux 系统

    运行 “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”让参数生效即可。

     

  1. 为什么使用分布式切图服务时有的子节点不切图?

    答:请检查子节点的地图数据,如果使用的是文件型数据源,需要保证子节点的地图数据与父节点的数据具有相同的路径。

     

  1. 为什么将 FastDFS 地图切片集导出为 MBTiles 文件后,有时结果为白图或不正确?

    答:在 FastDFS 地图切片集正在写入时导出 MBTiles 文件,此时生成的文件可能不能包含最新的切图结果。如果地图切片集是第一次写入,此时导出的 MBTiles 可能出现白图;如果不是第一次写入,导出的 MBTiles 文件会不包含最新的结果,导致其中的切图结果不正确。

    因此,请等待 FastDFS 地图切片集写入完成后再导出 MBTiles 文件。

     

  1. 分布式切图时,将切片存储在MongoDB中,当MongoDB部署在Windows 7或Windows Server 2008操作系统上时,随着MongoDB中的切片逐渐增加,会出现MongoDB无故异常退出,且退出时间不定的情况,应如何解决?

    答:需要在部署了MongoDB的Windows 7、Windows Server 2008操作系统中安装系统补丁。补丁下载地址:https://support.microsoft.com/en-us/kb/2731284

     

  1. 多进程切图时,切文件型数据源推送失败

    答:切文件型数据源时要求数据源文件和工作空间在同一个目录下,且该目录下不能有其他文件

     

  1. iServer 对部署路径有哪些要求?

    答:包括以下要求:

    (1)部署 iServer 服务时,所使用的 JDK/JRE 路径(通过环境变量JAVA_HOME/JRE_HOME指定)中不能含有括号,否则会导致 Oracle 数据源连接失败,或资源定时回收功能不可用;

    (2)部署 iServer 服务时,iServer的部署路径不能含有空格,否则资源定时回收功能不可用

     

  2. 当 KML 文件中包含模型数据的时候,如何发布成 SuperMap 3D 服务?

    答:当 KML 文件中包含模型数据的时候,需要将 KML 文件、模型数据和纹理一起打包,以 zip 格式压缩,然后将压缩包的扩展名改为 *.KMZ 格式后,才能发布成 SuperMap 3D 服务。

     

  3. 使用 64 位的 SuperMap iServer 发布 Oracle 数据源的数据,为什么服务内容为空?

    答:64 位的 SuperMap iServer 打开 Oracle 数据源时需要使用 64 位的 Oracle 客户端,请确保当前系统正确安装配置了 64 位的 Oracle 客户端。

 

  1. Oracle 等数据库型的工作空间为什么有时候会打开失败?

    答:SuperMap iServer 使用数据库型工作空间时会在操作系统的临时目录(如 Windows 下的%Temp%、Linux 下的/tmp 等)写入临时文件,如果系统的临时目录没有足够的空间,就会产生数据库型工作空间无法连接的问题。

    因此,使用数据库型工作空间时,应确保系统的临时目录有足够的空间。

     

  1. 如何调整数据库检查的频率?

    答:SuperMap iServer 支持调整数据库检查的频率,即检查“数据库型 工作空间”是否改变或“数据库型数据源”是否断开的时间间隔。具体方法是:修改系统配置文件(iserver-system.xml)中的 <checkDatasourceConnectionInterval> 参数值。

     

  1. 如果用户已经创建了 iPortal 的系统管理员账号,如:admin,门户数据也初始化了,此时由 SQLite 数据库切换至 MySQL 数据库,访问门户首页的地图、服务列表时,为什么是空的,批量注册服务出错,控制台提示“Cannot add or update a child row: a foreign key constraint fails...”?

    答:因为丢失了原来 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 中的所有门户数据信息。

     

  1. 在 Linux 平台上,使用 SuperMap iServer 发布包含 Oracle(非 10.1 版本) 数据源的文件型工作空间时,为什么服务内容为空?

    答:因为在 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 数据源的工作空间对应的服务即可正常访问。

     

  1. 数据查询中采用关联外表查询条件时,如果关联的数据库为Oracle,为什么有时候查询结果为空?

    答:因为对 Oracle 数据库查询时,如果查询的数据集加字段名超过27个字符,则将不能成功查询。因此,在设置查询条件时,请确认查询的数据集名加字段名不超过27个字符。

     

  2. 将 iServer 注册成 Windows 系统服务后,通过系统服务方式启动,发布 Oracle 引擎的数据为地图服务后,在 maps 资源下可显示地图列表,但访问地图表述不出图;发布为数据服务后,在 datasources 资源下不显示数据源。该如何解决?

    答:具体解决方法如下:

    (1)删除之前注册的iserver系统服务

    (2)在环境变量中新建一个变量 ORACLE_HOME,值为 Oracle 的目录,在系统的 PATH 环境变量的添加值“%ORACLE_HOME%\bin”,并放在首位。

    (3)重新打开一个 cmd 控制台窗口,注册iServer服务即可

     

  3. 为什么在windows系统上datastore向iServer注册后,有时会出现mongoDB启动失败的现象?

    答:可能原因:当前启动datastore的用户与持有mongo文件的用户不是同一用户,且当前用户没有权限操作持有mongo文件的用户的文件。

    解决办法:用持有mongo文件的用户来启动datastore,并向iServer进行注册。

     

  4. 将存放于数据库中的空间数据,发布为服务后,在大并发量访问场景中,如果出现请求阻塞、出白图或者查询结果个数为0或-1等问题,可能的原因是什么该如何解决?

    答:可能原因:在数据库型数据源申请的数据库连接数不够用了。以MySQL为例,一个出图或者空间查询请求,将消耗3个MySQL连接。假如并发用户数为100,预期一个数据源将申请300个数据库连接,而SuperMap默认情况是一个MySQL数据源申请100个数据库连接。

    解决办法:修改iServer内置的iObjectJava/bin/SuperMap.xml中的MySQLMaxConn参数,将该参数设置为大于300的某个值,然后重启iServer。

     

  5. 发布PGSQL工作空间时,如果报“工作空间连接字符串错误”可能的原因是什么该如何解决?

    答:可能原因:环境因素导致的。Postgre安装文件目录下的data文件夹中pg_hba.conf文件没有配置正确。

    解决办法:在pg_hba.conf末尾添加以下信息:。

    # TYPE DATABASE USER CIDR-ADDRESS METHOD

       host all all 0.0.0.0/0 md5

  6. 在 Linux 环境下 iServer 发布 Oracle 工作空间失败,提示“工作空间连接字符串错误”?

    答:可能原因:缺少依赖导致的。

    解决办法:

    进入目录

    cd %ISERVER_HOME%/support/objectsjava/bin

    检查依赖

    ldd libSuEngineOracle.sdx |grep not

    如出现如下错误信息:  

    libclntsh.so.10.1 not found

    则确定是缺少 libclntsh.so.10.1 依赖导致,从 iServer 运行正常的机器拷贝 libclntsh.so.10.1 到 Oracle 客户端目录的lib内:

    /usr/lib/oracle/11.2/client64/lib

    重启 iServer 即可正常发布。

     

  7. 为什么“Oracle Plus,SQL Server、PostGIS 等数据源”通过 featureResults 资源做 SQL 查询,带 groupBy(结果分组条件的字段)时,返回结果为空?

    答:标准 SQL 规范要求:“select 后面的所有没有使用聚合函数的列,必须出现在 groupBy 后面”。

    Oracle、SQL Server、PostGIS 等之所以失败,是因为这些数据库严格按照以上标准要求来执行,所以需要 queryParameter 里面必须包含 fields 结果字段,且不能为 null 空值,并且这个字段需要写在 groupBy 后面,要求 fields 查询参数中包含的列与 groupBy 中的列完全对应(聚合函数的列除外)。

    下面给出一个正确的查询请求体示例:

    {"getFeatureMode":"SQL","datasetNames":["ORCL:New_Point"], "maxFeatures":1000, "queryParameter":

    {"sortClause":null, "ids":null, "name":null, "attributeFilter":"SMID>0", "groupClause":null,"groupBy":"NAME","fields":["NAME"],"linkItems":null, "joinItems":null}

    }

    此外,由于 groupBy 参数将结果数据分组,因此结果数据不再以原数据集中顺序排列、id 变更。您需要在发送 POST 请求时,在 url 中添加 returnContent=true 从而直接获取结果。  

  8. 在 Linux 系统上启动 iServer DataStore,存储类型选择关系型后,iServer DataStore 初始化失败,并且 iServer DataStore 控制台显示“关系型数据库配置失败”,原因是什么,该如何解决?

         答:原因是:当存储类型选择关系型后,iServer DataStore 在初始化时会启动 PostgreSQL  数据库,而启动 PostgreSQL  数据库会使用 /tmp/.s.PGSQL.5432.lock 文件,如果之前有其他用户启动过 PostgreSQL  数据库,则会产生该文件,并且该文件的拥有者是之前的用户,而当前用户是没有权限去读写该文件的,如此将导致 PostgreSQL  数据库 启动失败,进而导致 iServer DataStore 初始化失败。

         解决方案:检查系统 /tmp 目录下是否存在 .s.PGSQL.5432.lock 文件。如果存在,请确认该文件拥有者是否为当前启动 iServer DataStore 的用户。如果不是,请联系该文件的拥有者或者 root 用户删除该文件,并重启 iServer DataStore。

  1. iServer 发布服务,当数据存储在 Oracle 数据源,iSever 发生崩溃,在日志 catalina.out 中出现"ORA-24550: signal received: [si_signo=6] [si_errno=0] [si_code=-6] [si_int=0] [si_ptr=(nil)] [si_addr=0x9c92]"错误时,怎么办?

答:可在 Oracle 客户端路径 $ORACLE_HOME/network/admin 添加 sqlnet.ora 文件,文件内容如下:

DIAG_ADR_ENABLED=OFF

DIAG_SIGHANDLER_ENABLED=FALSE

DIAG_DDE_ENABLED=FALSE

  1. 当同一个 PostgreSQL 数据库(database)既有 PostgreSQL 数据源,又有 PostGIS 数据源时,PostgreSQL 工作空间发布的数据服务查询结果错误,为什么?

答:SuperMap 暂不支持 PostgreSQL 引擎数据源和 PostGIS 引擎数据源在同一个数据库同时存在,建议分库处理。