Unable to perform query. Please check your parameters

来源:互联网 发布:华为 网络产品线 编辑:程序博客网 时间:2024/06/06 09:46

       今天根据ESRI官网的开源项目FlexViewer做了一个查询控件,用到了esri:QueryTask 和 esri:Query ,我在做测试的时候发现提示“Unable to perform query. Please check your parameters” ,一开始以为代码有问题,折腾了半天修改,还是涛声依旧。然后觉得可能服务有问题,就直接在网页的地址栏里面输入“http://172.16.0.3:8399/arcgis/rest/services/industrial/MapServer/0/query” ,直接在服务里面查询,还是原来的查询语句,当点击执行的时候,发现查询语句里面的中文全部变成乱码了,这才恍然大悟,确实是查询条件有问题。

       可是转念一想,这要是把中文换成英文,岂不是很麻烦?在网上搜索一下才知道,只需要配置两个XML文件即可。

 

       在安装了ArcGIS Server 的服务器上,打开下面两个路径:

       1.<arcgis dir>/java/manager/service/tomcat/managerappserver/conf/

       2.<arcgis dir>/java/manager/service/tomcat/managerserver/conf/

       其中<arcgis dir>是ArcGIS Server的安装路径。在这两个文件夹中都找到Server.xml这个文件,用记事本或者VS打开,找到所有的Connector节点(因为不止一个),在Connector节点上添加属性URIEncoding="UTF-8" ,然后重启SOM、SOC服务即可。Good luck ~

        PS:ArcGIS Server 9.3 SP1 REST API 返回中文乱码问题的解决方案

     上面的情况实在ArcGIS Server 9.3下,可以正常工作。但是如果你是9.3然后打了SP1补丁,或者直接是9.3.1的版本,那么上述的方法就不凑效了。

      网上查了一下原来,需要更换REST文件夹。

     

      1.备份<arcgis dir>/java/web_output/rest文件夹。(这个文件夹没有被打过sp1补丁)

      2.升级ArcGIS Server 9.3到sp1。(其他诸如desktop,sde也到同步到sp1)

      3.用原有的rest文件夹替换打过sp1补丁后的rest文件夹。

      注:如果已经升级到了sp1而面临这个乱码问题也不要紧,找台没有升级到sp1的或者重新在另一台机子上安装ags server 9.3,再把rest文件夹拷贝过来。这个时候要注意,别忘了修改拷贝过来<rest>/WEB-INF/classes /server.properties文件,把主机名用户名,密码等都改为自己的本地环境(密码要用编码后的字符串)。或者把自己的server.properties文件保留下来。

      (转自http://hi.baidu.com/eleven_714/blog/item/d3e0788d4901381eb21bba02.html)

      4.按照前面所说的修改Server.xml文件。

       5.重新启动SOM、SOC服务。Good luck ~

原创粉丝点击