参照 https://blog.csdn.net/supermapsupport/article/details/104127433 内容实现WFS查询时,
调用iServer发布的WFS服务时,查询报错了;
经测试,设置查询体1-84个参数能查到结果,增加到85个就返回以下的错误:
<ServiceExceptionReport xmlns="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2.0" xsi:schemaLocation="http://www.opengis.net/ogc http://127.0.0.1:8090/iserver/services/data-test/wfs100?request=getschema&file=wfs,1.0.0,OGC-exception.xsd"> <ServiceException> java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 </ServiceException> </ServiceExceptionReport>
单独查85或86,查85和86都没问题,从这86条数据中任意拿84条数据都没问题
任意拿85条,任意拿86条都会报错
您好,我这边没有复现这个问题。
你可以用这份数据查询一下看看是否正常: http://support.supermap.com.cn:8090/iserver/services/data-world/wfs100
若正常建议您还是从数据本身来排查,比如在数据端重新处理数据(复制数据集、或者新建数据集追加行等形式)后再重新发布服务。
如果给您提供的数据仍然出现查询数不能超过84个,
1.确定下是否设置了wfs的maxfeatures查询上限,若没有也可以尝试手动增大。
iserver默认wfs查询上限是2000。 在webapps\iserver\WEB-INF文件夹下的iserver-services-interfaces.xml 文件里interface节点下添加期望返回结果,例如:
<config class="com.supermap.services.wfs.WFSConfig"><maxFeatures>期望结果</maxFeatures></config>
2.检查代码中是否有约束。
额外参考:https://blog.csdn.net/supermapsupport/article/details/49995463
1、数据是咱超图自己处理的(项目上超图方做的数据,用正则(PropertyIsLike)的方式查全部没问题,单查(PropertyIsEqualTo)某85个就出不来)
2、iserver中对应的文档中确实没有maxfeatures配置参数,加上后,重启服务,查询还是报相同的问题
3、代码是单纯的Ajax请求
怀疑是ajax请求的post传递参数长度出了问题,但是不知道iserver在哪里配置相关的参数
下面是85条数据报错:
下面是84条数据,就没问题: