常见问题解答

发送反馈


  

    安装与部署

  1. 启动 SuperMap iPortal 服务时,环境检查不通过的几种可能原因及解决方法。
  2. 为什么启动 iPortal 服务时,报端口占用错误,导致 iPortal 服务启动失败?
  3. 为什么运行 iPortal 过程中报如下错误:“java.lang.OutOfMemoryError: unable to create new native thread”?
  4. SuperMap iPortal 服务崩溃的可能原因有哪些?
  5. SuperMap iPortal 在非正常关闭的情况下,服务为什么会自动重启?
  6. SuperMap iPortal 在 Tomcat 等 Java Web 容器中,以 Windows 服务形式启动时,日志文件放在哪里?
  7. 停止 iPortal 时,bin 下为什么会生成 *.mdmp 文件,导致磁盘占用过多?
  8. 如果 iPortal 所在的操作系统配置了多个 IP,如何指定 iPortal 服务所使用的 IP?
  9. 跨平台与中间件

  10. 为什么在 Linux 系统上启动 iPortal 服务时,报如下类似错误:“Unable to set localhost. This prevents creation of a GUID”?
  11. Linux 系统没有图形界面,如何通过命令行方式配置 SuperMap iPortal 7C 使用许可?
  12. 在 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 … “,如何解决?
  13. 如果在 Hyper-v 上运行的 Linux 操作系统中,安装7C 许可失败,或在重启系统后许可不可用,该如何解决?
  14. 在 Linux 操作系统上安装 SuperMap License Center 许可驱动程序时,有时会出现:“hasp_update failed with status 65”错误信息,如何解决?
  15. 为什么使用远程工具(如:putty、SecureCRT、SSH)启动 Linux 机器上的 SuperMap iPortal 7C 或 SuperMap iPortal 7C 服务后,访问服务首页报“Could not initialize class sun.awt.X11GraphicsEnvironment”或“系统环境检查不通过”错误,而在本机上启动服务,访问服务首页却正常?
  16. 服务访问

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

  19. 如果忘记 SuperMap iPortal 初始化时创建的管理员账户密码怎么办?
  20. 为什么配置 CAS 认证服务器后,单点登录认证失败?
  21. 为什么正确配置了邮箱服务器后,还会提示“警告:SMTP服务器配置不合法”?
  22. 数据库

  1. 如果用户已经创建了 SuperMap iPortal 的系统管理员账号,如:admin,此时由 SQLite 数据库切换至 MySQL 数据库,然后进行注册服务、创建地图等添加门户数据操作会报错,控制台提示“Cannot add or update a child row: a foreign key constraint fails...”?

 

 

     

  1. 启动 SuperMap iPortal 服务时,环境检查不通过的几种可能原因及解决方法。
  2. 答:SuperMap iPortal 服务需要配置 JRE 1.8 或以上版本,需要配置 SuperMap iPortal 的使用许可。

    在 %SuperMap iPortal_HOME%\bin 目录下使用“iportal.bat -v”(Linux/Unix 平台使用 “./iportal.sh -v”)可以查看当前 SuperMap iPortal 的版本及配置信息。可能原因及解决方法如下:

    (1) SuperMap iPortal 许可配置不正确,请确保使用许可已正确配置。许可的配置请参见许可配置说明

    (2) JRE/JDK 版本过低或者不兼容。SuperMap iPortal 支持1.8以上版本的 JRE/JDK。

     

  3. 为什么启动 SuperMap iPortal 服务时,报端口占用错误,导致 iPortal 服务启动失败?
  4. 答:SuperMap iPortal 产品包默认部署在 Tomcat 中,Tomcat 默认使用了 8090、8015端口,这两个端口被占用则无法正常启动服务。可以通过以下两种方式解决:

    (1) 请退出占用端口的程序,然后重新启动 SuperMap iPortal。目前已知的可能占用 8090 端口的程序有:360 杀毒软件的自动升级程序。

    (2) 修改 SuperMap iPortal 产品包中 Tomcat 的端口号,然后重新启动 SuperMap iPortal。具体方法是修改%SuperMap iPortal_HOME%/conf/server.xml 中的相关端口,如:<Server port="8016" ……>、<Connector port="8091" …… redirectPort="8454" ……>。

     

  5. 为什么运行 SuperMap iPortal 过程中报如下错误:“java.lang.OutOfMemoryError: unable to create new native thread”?
  6. 答:SuperMap iPortal 中,线程池中创建线程时会在操作系统里创建一个真正的物理线程,在某些内存小的机器上,当注册的数据量大、访问量大时,因处理高并发的请求,操作系统创建物理线程所需的内存空间会跟 Java 虚拟机堆产生内存竞争,由此导致线程创建失败(iPortal 32位安装包默认分配的最大的 Java 虚拟机内存为512M,最大线程数为300)。可通过如下方式解决:

    (1) 减少分配给 java 虚拟机的内存;修改 Java 虚拟机参数,例如在 windows 版的 iPortal 包中,修改 %SuperMap iPortal_HOME%/bin/catalina.bat 中的 JAVA_OPTS,设置 -Xmx512m 为更小值;

    (2) 减少 tomcat 连接池的活动线程数;修改 %SuperMap iPortal_HOME%/conf/server.xml 中,<Executor/>节点的 maxThreads 为更小值。

     

  7. SuperMap iPortal 服务崩溃的可能原因有哪些?
  8. 答:有如下可能原因:

    (1)请检查本机是否安装并开启了金山毒霸杀毒软件。开启金山毒霸可能会导致 iPortal 服务崩溃。

    (2)已知 Tomcat 7.0.29 版本会导致内存泄露,更换为其他 Tomcat 版本,如 Tomcat 7.0.26 即可。

     

  9. SuperMap iPortal 在非正常关闭的情况下,服务为什么会自动重启?
  10. 答:这是为了在 iPortal 服务异常的情况下,通过服务自动重启来保证 iPortal 继续正确工作。自动重启功能在如下场景中有效:

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

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

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

     

  11. SuperMap iPortal 在 Tomcat 等 Java Web 容器中,以 Windows 服务形式启动时,日志文件放在哪里?
  12. 答:当 SuperMap iPortal 以 Windows 服务形式启动时,以部署到 Tomcat 中为例,在【SuperMap iPortal 安装目录】\webapps\iportal\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。

     

  13. 停止 SuperMap iPortal 时,bin 下为什么会生成 *.mdmp 文件,导致磁盘占用过多?
  14. 答:停止 SuperMap iPortal 时,请使用 shutdown.bat/sh,而不是 Ctrl+C 命令。

     

  15. 如果 SuperMap iPortal 所在的操作系统配置了多个IP,如何指定 iPortal 服务所使用的IP?
  16. 答:您可以通过修改 Catalina.bat 中的 Java 虚拟机参数中的-Diserver_ip来指定 iPortal 所使用的 IP。即:修改 %SuperMap iPortal_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. 为什么在 Linux 系统上启动 iPortal 服务时,报如下类似错误:“Unable to set localhost. This prevents creation of a GUID”?
  18. 答:出现这种现象时,请在 /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      

     

  19. Linux 系统没有图形界面,如何通过命令行方式配置 SuperMap iPortal 7C 使用许可?
  20. 答:通过 com.supermap.license.jar 以命令行方式配置许可包括如下四个步骤:

    (1)设置 Java 环境变量,并设置环境变量 LD_LIBRARY_PATH 为 com.supermap.license.jar 所在目录:

    export=./support/jre/bin/

    export=./support/SuperMap_License/

    (2)获取本机信息,进入 SuperMapiPortal7C\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 系统下的许可配置说明

     

  21. 在 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 … “,如何解决?
  22. 答:因为该 Linux 64 位操作系统缺少 32bit 支持库,所以运行出错。解决方法是需要手动安装支持32位的支持库(参考如下列表),您可以加载系统盘补充安装相关库,或到相应系统的官网上获取相关库来安装。

    对于 SUSE 系列10.3以上、Red Hat 系列5.5以上的操作系统,iPortal 提供了一个脚本文件协助您安装上述依赖库。您只需要在启动 iPortal 前,在【SuperMap iPortal 产品目录】/SuperMapiPortal7C/support/SuperMap_License/Support 下以如下方式运行:

    ./rpms_check_and_install_for_64bit.sh

     

  23. 如果在 Hyper-v 上运行的 Linux 操作系统中,安装7C 许可失败,或在重启系统后许可不可用,该如何解决?
  24. 答:如果遇到许可安装失败,或安装过的许可不可用,可以通过以下方法把驱动卸载后重新安装。

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

    cd /var

    rm -rf hasplm

    (2)卸载许可驱动:

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

    ./dunst

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

    ./dinst

     

  25. 在 Linux 操作系统上安装 SuperMap License Center 许可驱动程序时,有时会出现:“hasp_update failed with status 65”错误信息,如何解决?
  26. 答:该错误提示可以忽略,当您重复安装许可驱动时,会出现该错误提示信息,表示当前计算机已导入过90天的试用许可,试用期内不影响许可的正常使用。如果已经过了90天试用期,请联系销售人员申请继续试用或正式购买(可通过在线商店购买短期许可)。

     

  27. 为什么使用远程工具(如:putty、SecureCRT、SSH)启动 Linux 机器上的 SuperMap iPortal 7C 服务后,访问服务首页报“Could not initialize class sun.awt.X11GraphicsEnvironment”或“系统环境检查不通过”错误,而在本机上启动服务,访问服务首页却正常?
  28. 答:如果使用远程工具启动 SuperMap iPortal 7C 服务,需要首先登陆 Linux 机器,然后打开一个终端运行以下命令:

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

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

     

  29. 为什么有时候发送请求时服务器无法正确识别请求,即出现返回乱码、请求失败或者得到错误结果的情况?
  30. 答:发送的 HTTP 请求没有使用 UTF-8 编码导致服务器无法识别所致。对于非 ASCII 字符,SuperMap iPortal 默认使用 UTF-8 编码,如果不是,则无法正确解析。

     

  31. 如果忘记 SuperMap iPortal 初始化时创建的管理员账户密码怎么办?
  32. 答:在 SuperMap iPortal 的【SuperMap iPortal_HOME】\bin 目录下有个 passwordreset.bat/passwordreset.sh 文件,专门用来处理用户忘记系统初始化时的管理员账户密码问题。如果忘记系统初始化时的管理员账户密码,可以通过以下操作重新创建管理员账户:

    (1) 停止 SuperMap iPortal 服务,即执行 【SuperMap iPortal_HOME】\bin 目录下的  shutdown.bat /shutdown.sh 文件。

    (2) 执行 passwordreset.bat/passwordreset.sh 文件 。

    (3) 重启 SuperMap iPortal 服务,即执行 【SuperMap iPortal_HOME】\bin 目录下的 startup.bat/startup.sh 文件。服务启动后访问 iPortal 首页时,系统会自动跳转到创建管理员账户界面,此时只需重新创建管理员账户即可。

     

  33. 为什么配置 CAS 认证服务器后,单点登录认证失败?
  34. 答:如果 CAS 认证服务器和 GIS 服务器不在同一台机器上,由于两台机器的时间差,可能导致登录验证不成功,这时需要调整两台机器的时间保持一致,或延长容错时间间隔,iPortal 默认的时间差容限为 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

    ...

     

  35. 为什么正确配置了邮箱服务器后,还会提示“警告:SMTP服务器配置不合法”?
  36. 答:如果您使用的 JDK 版本为1.8及以上(iPortal 产品包中自带的 JDK 版本为1.8),当安全协议采用 SSL 或 STARTTLS 时,邮件服务器配置可能会验证不通过,提示“警告:SMTP服务器配置不合法”,需通过以下步骤解决:

  1. http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html 下载 UnlimitedJCEPolicyJDK7.zip
  2. 解压 UnlimitedJCEPolicyJDK7.zip 得到以下两个文件
  1. 用这两个 jar 文件覆盖 【SuperMap iPortal_HOME】\support\jre\lib\security 目录下的同名文件(建议将原文件做备份)
  2. 重启 iPortal 服务
  3.  

  1. 如果用户已经创建了 SuperMap iPortal 的系统管理员账号,如:admin,此时由 SQLite 数据库切换至 MySQL 数据库,然后进行注册服务、创建地图等添加门户数据操作会报错,控制台提示“Cannot add or update a child row: a foreign key constraint fails...”?
  2. 答:因为丢失了原来 SQLite 数据库中 user_infos 表里的用户信息,需要将%SuperMap iPortal_HOME%webapps\iportal\WEB-INF\iportaldata 下的 iportal.db 中的用户信息同步到 MySQL 数据库中。具体操作为:在 MySQL 数据库中的 user_infos 表中添加 admin 这条记录,SQL 语句为:

    insert into user_infos(name,nickname) values("admin","admin");

    (针对 SuperMap iPortal 8C SP1之前的版本,您还需确保 MySQL 数据库中的 servicerooturls 表是空的,如果有记录,需要删除 ),然后重启 iPortal 服务即可。

    需要注意的是:如果您已经使用了 iPortal 创建地图、注册服务等,切换至 MySQL 数据库时如果想保留之前的门户数据信息,那么还需要同步 iportal.db 中的所有门户数据信息。