SuperMap iServer常见问题解答集锦 (五)

来源:互联网 发布:java集成开发环境 编辑:程序博客网 时间:2024/04/28 19:13

作者:朝阳


问:用自己的tomcat发布SuperMap iClient 6R for Flex或者SuperMap iClent 6R for Flex(2008)已编译(FlexBuilder4.0)的bin-debug中的范例,然后在其他机器上访问时报安全沙箱冲突(如SecurityError#2048:安全沙箱冲突:http://192.168.1.101:8080/bin_debug/Flex6R.swf不能从http://localhost:8090/iserver/services/map-world/rest/maps/World%20Map.json加载数据等)怎么解决?
答:这时需要在SuperMap iServer Java 6R(或者SuperMap iServer 2008)和自己的tomcat中的ROOT文件夹下放入crossdomain.xml跨域文件,然后在Flex范例中加入以下代码并使其初始化的时候就加载。

<fx:Script>        <![CDATA[            private function initApp():void{                trace("11111111111");                Security.allowDomain("*");                Security.loadPolicyFile("http://192.168.1.101:8080/crossdomain.xml");            }        ]]></fx:Script>
这时候重启iServer服务,在自己的tomcat中发布已编译的bin-debug文件中的范例在其他机器上访问时就不会报安全沙箱问题。

问:SuperMap iServer Java 6R在linux系统中安装后,发布工作空间是时出现路径不对(或是找不到该文件的相对路径)?

答:SuperMap iServer Java 6R 在linux系统上发布工作空间时如果出现路径不对,
则1)需要把“服务器位于本地”的那个对勾取消掉,2)工作空间名称最好是英文。

问:请问SuperMap iServer Java 6R在linux系统上部署配置许可时出现error-wronglicensedata错误,我用的是绑定物理网卡地址的文件许可,计算机名,用户名、单位名都是对的请问是为什么?
答:SuperMap iServer Java 6R目前在linux系统上只能用计算机名的文件许可。

问:当启动服务时,后台出现“xx服务提供者不存在”,很多,而且iServer6R的管理界面登陆不了
答:出现该问题,可以查看JDK的版本是否和iServer6R版本相匹配,如果iServer6R是32位的,那么JDK必须为32位且1.6及其以上的。关于JDK版本的问题,

可以在命令行(Windows是输入cmd,而linux则是在终端)输入java -version可以查看JDK版本和位数,如果出现X64,则表示当前JDK版本为64位的。
(64位的iServer6R可以使用64位的JDK)

问:为什么升级到 SuperMap iServer Java 6R(2012) SP2 后,原有许可不可用?
答:SuperMap iServer Java 6R(2012) SP2 新增了新功能的许可管理,需要使用新版本的 SuperMap License Manager 重新配置许可,配置过程参见许可配置说明

问:使用服务管理器中的“快速发布服务”向导发布文件型工作空间时,为什么“本地浏览”按钮不可用?
答:可能存在如下两种情况:
一. 服务不在本地,请使用“远程浏览”进行选择;
二. IE9、IE10、Chrome、Safari 下,由于浏览器的安全控制,SuperMap iServer 无法获取欲发布工作空间的准确路径,请使用“远程浏览”进行选择。

问:为什么对iServer提供的地图服务进行查询时会出现如下错误“java.lang.OutOfMemoryError: Java heap space”?
答:可能是由于查询时返回的结果记录集中包含的对象数量过多造成的。可以采用以下方式限制一次返回的结果记录数从而避免此类问题:
(1)客户端进行查询时,可以通过expectCount参数设置期望返回结果的记录数,使之限制在服务端可接受范围内。
(2)服务器端可以设置默认返回记录数,iServer提供了queryExpectCount配置项(默认值为1000)来设置默认返回记录数,详见通过 XML 文件配置服务提供者。

问:为什么在 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 ”
答:如果使用 32 位的 iServer,请用$SuperMap Objects Java_HOME\\bin 目录下的 libmawt.so 文件替换 $JRE_HOME\\lib\\i386\\headless 目录中的 libmawt.so 文件;
如果使用 64 位的 iServer,请用 $SuperMap Objects Java_HOME\\bin 目录下的 libmawt.so 文件替换 $JRE_HOME\\lib\\amd64\\headless 目录中的 libmawt.so 文件。

问:iServer 中对 REST 资源进行 POST 请求时,得到的结果资源 ID 为什么与 REST API 请求示例中的不一样?
答:newResourceID 作为操作结果资源的ID是一个随机数,如对 datasetBufferresults 资源执行POST请求后得到的结果资源datasetBufferresult的ID,因此每次执行POST请求得到的结果子资源ID是不同的。

问:iServer 对部署路径有哪些要求?
答:部署 iServer 服务时,所使用的 JDK/JRE 路径中不能含有括号,否则会导致 Oracle 数据源连接失败;

问:在 Linux 系统下使用 iServer 时,如何设置才能监视 iServer 与数据库型数据源的连通情况?
答:在启动 iServer 服务前,以 root 用户执行如下命令:
echo 5 > /proc/sys/net/ipv4/tcp_retries2
这样,当数据库连接断开时,iServer 中将提示:**工作空间连接失败。

问:为什么在 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%  

问:在 WebLogic 上部署成功的 iServer 服务,通过 WebLogic 的管理页面更新之后,再次访问时出现“HTTP 500 内部服务器错误”?
答:这是由于部署 iServer 服务时需要加载自带的动态链接库,首次部署时该动态链接库已经被加载,导致更新时加载失败。解决方法:更新 iServer 之后,请在 WebLogic 的管理页面重启部署 iServer 所用的服务器(Server)。

问:通过某比例尺获取的地图图片为什么与以前版本产品中同样比例尺下获取的地图图片不一样?
答:这是由于SuperMap产品体系中的比例尺是基于屏幕分辨率的,目前屏幕分辨率默认值为96dpi,而在SuperMap iServer Java 6R(2012) 及以前的产品中,屏幕分辨率默认为76.2dpi,此变更从SuperMap iServer Java 6R(2012) SP1开始生效。关于地图比例尺的详细介绍,请参考比例尺的定义。

问:为什么 SuperMapCloud 表述方式下,地图与云服务图层出现偏差;天地图表述方式下,地图与天地图服务的图层出现偏差?
答:由于 SuperMap 云服务的数据、天地图服务的数据按照国家有关规定进行了脱密处理,与原始数据不一致。

问:为什么启动 iServer 服务时,出现 iServer 实际使用的 UGO 版本较低,不推荐使用的警告?
答:iServer 服务需要配置 UGO,即 SuperMap Objects Java,且 iServer 实际使用的 SuperMap Objects Java 版本不能低于 iServer 期望使用的版本。默认情况下,iServer 使用自带的 SuperMap Objects Java,位于 %SuperMap iServer Java_HOME%\\support\\objectsjava\\bin 目录。在 %SuperMap iServer Java_HOME%\\bin 目录下使用“iserver.bat -v”(Linux/Unix 平台使用 “./iserver.sh -v”)可以查看 iServer 实际使用的 SuperMap Objects Java 版本信息。

问:如何查看iServer Java6 版本、及其所用的JRE/JDK、Object Java等参数。
答:在cmd命令窗口里指定路径到【iServer安装目录】/bin文件,运行version.bat命令就可以看到。

问:如何在iServer的交通网络分析中设置道路的单向通行?
答:在iServer的服务管理页面中,选择需要配置的交通网络服务提供者,点击“高级设置”→”交通规则设置”。根据业务需求,在里面配置正向单行或反向单行。

问:使用服务管理器中的“快速发布服务”向导发布文件型工作空间时,为什么“本地浏览”按钮不可用?
答:可能存在如下两种情况:
一. 服务不在本地,请使用“远程浏览”进行选择;
二. IE9、IE10、Chrome、Safari 下,由于浏览器的安全控制,SuperMap iServer 无法获取欲发布工作空间的准确路径,请使用“远程浏览”进行选择

问:使用iServer java6R对发布的地图切完缓存后删除了对应的工作空间,重新启动iServer后报错,访问iServer页面报出404错误。
答:使用iServer java6R切缓存会在iServer/WEB-INF/config文件夹里生成一PreCacheConfig.xml文件,由于这个文件里记录了之前的工作空间信息当工作空间不存在时启动iServer会发布失败,删除PreCacheConfig.xml文件后重新启动iServer就可以了。

问:根据地图缩放级别值来缩放地图,如当前地图比例尺有11个,想定位到第5个级别。
答:获取当前map的level,判断是否同一个级别,如果不在调用zoomToLevel()方法。可以循环map对象的scales及resolutions来获取这个缩放级别是哪个比例尺及地图分辨率。

问:用IE9浏览器浏览SuperMap iServer Java 6R的Manager,删除已经发布的工作空间,浏览器没有反应,如何解决?
答:关闭IE浏览器的兼容性视图,再做删除工作空间的操作即可。

问:iServer启动之后,服务器上能访问地图,但是其他机器访问不到地图,这是什么原因呢?
答:很可能是服务器机器的防火墙尚未关闭,导致了其他机器访问不到服务器上的资源,解决办法:请关闭防火墙再试。

问:在SuperMap Deskpro.NET中修改数据源的名字并给图层重新指定数据集后,SuperMap iServer Java 6R中看到的图层名称为什么没有改变?
答:在SuperMap Deskpro.NET中给图层重新指定数据集只是改变图层的标题,并没有改变图层的名称,而SuperMap iServer Java 6R中读取的是图层名称,所以图层名称没有改变。

问:发布使用Oracle Spatial型数据源的工作空间为地图和数据服务时没有报错,访问数据服务也是正常的,但是访问地图为白图?
答:可能是没有为数据集创建空间索引导致的。使用Oracle Spatial型数据源需要在SuperMap Deskpro.NET为所有数据集创建R树索引(具体方法参考SuperMap Deskpro.NET联机帮助中的“管理空间索引”介绍),然后在SuperMap iServer Java 6R中重新发布即可。

问:SuperMap iServer Java 6R 注册为Windows服务后并启动服务,访问服务首页(http://localhost:8090/iserver)怎么报404错误?
答:在命令行中运行server.bat命令将SuperMap iServer Java 6R 注册为Windows服务时,需要设置在系统环境变量PATH中添加【SuperMap iServer Java 安装目录】/support/jre/bin和【SuperMap iServer Java 安装目录】/support/objectsjava/bin路径

问:Linux系统命令行模式下如何获取配置许可时需要的计算机名或者网卡信息?
答:首先配置JAVA或JRE和Objectsjava环境变量并使之生效,然后在【SuperMap iServer Java 安装目录】/support/objectsjava/bin目录下运行java -jar com.supermap.license.jar命令进行查询。如果要查询计算机名后面加参数 –name(或-n),如:java -jar com.supermap.license.jar -name;如果要查询网卡信息后面加参数 –interface(或-if),如:java -jar com.supermap.license.jar -interface。查看该命令的更多信息可以在后面加?,如:java -jar com.supermap.license.jar ? 。

问:发布交通网络分析服务后,iServer重启很慢,如何解决
答:启动慢是因为iServer启动时检查数据的完整性和构建交通网络分析服务的模型导致,优化方法可以在Deskpro.Net中,打开网络数据集,在数据菜单栏,选择字段索引,勾选发布时使用的字段,如:SMID SmFNode SmTNode SmEdgeID等创建字段索引即可

问:如何修改自己发布的地图缓存目录
答:打开iServer安装目录下的webapps\\iserver\\WEB-INF\\iserver-services.xml,修改你所发布地图服务的providers 在config节点后 修改outputPath和outputSite,例如:outputPath中可以填写../webapps/output,outputSite可以填写http://localhost:8090/output/
修改完成后,重启iServer服务即可

问:iServer6R 关闭窗口,服务为什么会自动重启?
答:sp3加入的新功能,通过自动重启,保证iServer继续工作,如果不需要自动重启,那么手动的去bin目录下shutdown.exe(win平台)或者shutdown.sh(linux平台)

问:为什么在 Suse Linux Enterprise 11 SP2 操作系统上无法启动 iServer 服务?
答:需要安装第三方客户端才能正确加载的sdx数据引擎,在该操作系统上加载失败时会影响其他sdx数据引擎的加载,从而导致无法打开任何数据源或系统崩溃。这类的sdx数据引擎文件有:libEngineDB2600.sdx、libEngineDMCI600.sdx、libEngineKingbase600.sdx、libEngineOracle600.sdx、libEngineOsp600.sdx、libEnginePG600.sdx。
解决方法是删除 $SuperMap Objects Java_HOME\bin 下不需要的数据库引擎文件(.sdx)。例如:需要使用 Oracle 数据源,则首先安装 Oracle 客户端,并删除 libEngineOracle600.sdx 之外的上述所有.sdx,服务就能正常启动。以此类推,如果需要使用其他数据库引擎,也进行相应的处理。

问:为什么在 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 

问:有些 Linux 系统没有图形界面,如何通过命令行方式配置 iServer 使用许可?
答:命令行方式配置许可包括如下三个步骤:

1)将 $JRE_HOME/$JDK_HOME/bin 加入 $PATH(AIX 系统中为 $LIBPATH) 变量:export PATH=$JRE_HOME/bin:$PATH2)设置 UGO_HOME 为 SuperMap Objects Java 6R 的安装目录,并将 $UGO_HOME/Bin 加入 LD_LIBRARY_PATH(AIX 系统为 $LIBPATH) 环境变量:export LD_LIBRARY_PATH=$UGO_HOME/Bin:$LD_LIBRARY_PATH3)在 $UGO_HOME/Bin 目录下执行如下命令:java -jar com.supermap.license.jar -c *.lic此外,可执行 java -jar com.superamp.license.jar ? 查看 java -jar com.superamp.license.jar 所支持的操作。

问:分布式切图时,控制台为什么会提示“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  = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle =  1net.ipv4.tcp_fin_timeout = 30

然后执行“/sbin/sysctl -p”让参数生效即可。

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

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

问:点很多,导致客户端浏览很慢,如何提高出图显示效率?
答:可以在配图的时候设置最大最小可见比例尺,以及把这些矢量的点符号转换为栅格点符号。

问:大数据的交通网络分析服务发布后,重启很慢,怎么优化呢?
答:因为交通网络分析服务启动,需要检查数据的完整性和创建交通网络分析模型,所以是需要点时间的。
可以将所用到的字段,创建字段索引,具体的可以在Deskpro.Net中数据菜单栏,选择字段索引,然后将用到的属性勾选创建即可。如:SMID,SMLENGTH,SMEDGEID,SMFNODE,SMTNODE等。

问:SuperMap Deskpro.NET配好的地图,Linux下用SuperMap iServer Java6发布出来字体效果不同或者字体不显示?
答:Windows和Linux上字体库不同,建议Windows上配图后,把Windows上的字体库拷贝或者安装到Linux系统上。

问:为什么使用远程工具(如:putty、SecureCRT、SSH)启动Linux机器上的SuperMap iServer Java 6R服务,访问服务首页报“系统环境检查不通过”错误,而在本机启动服务正常?
答:如果使用远程工具启动SuperMap iServer Java 6R服务,首先登录到 Linux机器,打开一个终端运行以下命令:
a) X :n& 在第 n个屏幕上启动一个xServer ,n为任意整数
b) export DISPLAY=:n.0设置 DISPLAY变量到本机的xServer 上,然后再启动服务即可。

问:使用SuperMap iServer 时,已经配置了正式许可,地图上仍然有SuperMap的水印。
答:此问题有两个可能的原因。(1)用户加载地图时如果启用了缓存,则会直接调用已经生成的缓存而不重新出图,如果原来的缓存图片上有水印,会出现地图上有水印的情况。因此可以通过清除原有的缓存解决此问题。(2)许可配置中原有配置了试用许可,iServer默认读取的许可信息是试用的。用户在许可配置工具中将原有的试用许可删除。

问:iServer Java 6R如何启用和加入集群?
答: 启用集群:进入iServer java6R的服务管理页面后选择集群菜单,进入集群页面选择启用集群,点击“启用”按钮启动集群服务,设置集群服务地址将localhost修改为本机IP和设置安全Token,设置完成后勾选“使用本地集群服务”点击“保存变更”。
加入集群:进入iServer java6R的服务管理页面后选择集群菜单,进入集群页面选择加入集群,点击“添加报告器”填写要加入集群的报告地址和安全Token并勾选“报告器是否启用”,填写完后点击“保存变更”。

问:怎样修改WebLogic上部署的iServer的缓存路径?
答:WebLogic安装目录\Middleware\user_projects\domains\base_domain\servers
\AdminServer\tmp\_WL_user\iserver\w3907u\war\WEB-INF\config在这个路径下面有一个services.xml配置文件,把这个文件中的./output/标签中的“./output/”路径修改为你所要指定的路径即可。

问:在WebLogic上配置SuperMapiServer Java 6R完成后,启动WebLogic时,报“初始化Rest核心Bean时出错”,这是什么原因造成的。
答:这是由WebLogic的安装目录中带有“空格”字符引起的。可以把WebLogic重新安装部署到没有“空格”的目录下面,然后重新部署iServer,然后iServer就可以正常使用了。

问:怎么样直接用URL地址在浏览器中读取缓存切片中的某个指定的切片?
答:可以通过直接利用所发布的地图服务的tileImage,然后设置好比例尺、X索引、Y索引、宽、高、图层标识、透明、目标坐标系这些参数后,点击获取图片就可以获取到指定的切片;还可以通过设置表述格式,实现以不同的方式浏览所获取的切片。

问:在工作空间中设定了地图风格,用iServer发布后,地图风格改变了
答:这是因为采用的风格符号,不存在于符号库中,该风格符号只是在工作空间中进行了修改,没有添加到符号库中,只需要将所要采用的风格符号保存到符号库中就可以了。

问:如何修改GeoProcessor中的最大计划任务数?
答:在smiserver_java_611_8810_2570_x86_chs_zip\\webapps\\iserver\\WEB-INF\\lib\\iserver-all-6.1.1-8810.jar\\com\\supermap\\geoprocessor\\jobscheduling\\resource这个路径下面找到quartz.properties。把第12行中的org.quartz.threadPool.threadCount= 10这个数值改为你所想要的数值。

问:使用UGCSpatialAnalystProvider进行扩展时,如何设置工作空间路径?
答:先实现ProviderContext接口,在getConfig函数中设置UGCSpatialAnalystProviderSetting即可。

问:iServer如何获取Deskpro.net中图例子项符号内容?
答:可以通过layers里面的lengend.pgn获取。例如:http://localhost:8090/iserver/services/map-world/rest/maps/世界地图/layers/ContinentLabel@World@@世界地图/legend.png?height=16&width=16

问:SuperMap iClient 7C for JavaScript如何修改地图容器大小?
答:修改地图所在div大小后,通过调用map.updateSize()方式,来改变地图容器的大小。

0 0