无法使用 REST API 在 Geoserver 数据存储中设置过滤器合规性属性

Unable to set Filter Compliance property in Geoserver Datastore using REST api

提问人:Luca Palmarucci 提问时间:11/17/2023 最后编辑:Luca Palmarucci 更新时间:11/17/2023 访问量:27

问:

我正在尝试使用此请求正文从 Geoserver Rest API 创建数据存储(特别是 Web Feature Server 存储)

{
    "dataStore": {
        "name": "wfsRestApi",
        "description": "Description web feature service creatoin from api",
        "type": "Web Feature Server (NG)",
        "enabled": true,
        "connectionParameters": {
            "WFSDataStoreFactory:GET_CAPABILITIES_URL": "https://gs-stable.geo-solutions.it/geoserver/ows",
            "WFSDataStoreFactory:USERNAME": "",
            "WFSDataStoreFactory:PASSWORD": "",
            // "WFSDataStoreFactory:OUTPUTFORMAT": 80,
            "WFSDataStoreFactory:ENCODING": "UTF-8",
            "WFSDataStoreFactory:TIMEOUT": 30000,
            "WFSDataStoreFactory:USE_HTTP_CONNECTION_POOLING": true,
            "WFSDataStoreFactory:MAX_CONNECTION_POOL_SIZE": 6,
            "WFSDataStoreFactory:AXIS_ORDER": "Compliant",
            "WFSDataStoreFactory:AXIS_ORDER_FILTER": "Compliant",
            "WFSDataStoreFactory:TRY_GZIP": true,
            "WFSDataStoreFactory:BUFFER_SIZE": 10,
            "WFSDataStoreFactory:WFS_STRATEGY": "auto",
            "WFSDataStoreFactory:FILTER_COMPLIANCE": 0,
            "WFSDataStoreFactory:MAXFEATURES": 0,
            "WFSDataStoreFactory:GML_COMPLIANCE_LEVEL": 0
        },
        "_default": false
    }
}

一切正常(我收到 201 创建的状态代码),但是当我访问 geoserver Web 应用程序并转到刚刚创建的商店的详细信息页面时,我看到 Filter Compliace 属性为空(见下图)

Screenshot

我试图对地理服务器源代码进行逆向工程,但我仍在弄清楚。
我使用过的另一个请求正文(与上一个的结果相同)是后续的

{
    "dataStore": {
        "name": "wfs",
        "description": "Description web feature service creatoin from api",
        "type": "Web Feature Server (NG)",
        "enabled": true,
        "connectionParameters": {
            "entry": [
                {
                    "key": "WFSDataStoreFactory:GET_CAPABILITIES_URL",
                    "value": "https://gs-stable.geo-solutions.it/geoserver/ows"
                },
                {
                    "key": "WFSDataStoreFactory:USERNAME",
                    "value": ""
                },
                {
                    "key": "WFSDataStoreFactory:PASSWORD",
                    "value": ""
                },
                {
                    "key": "WFSDataStoreFactory:FILTER_COMPLIANCE",
                    "value": 0
                },
                {
                    "key": "WFSDataStoreFactory:MAXFEATURES",
                    "value": "0"
                },
                {
                    "key": "WFSDataStoreFactory:WFS_STRATEGY",
                    "value": "auto"
                },
                {
                    "key": "WFSDataStoreFactory:GML_COMPLIANCE_LEVEL",
                    "value": 0
                },
                {
                    "key": "WFSDataStoreFactory:AXIS_ORDER",
                    "value": "Compliant"
                },
                {
                    "key": "WFSDataStoreFactory:AXIS_ORDER_FILTER",
                    "value": "Compliant"
                },
                {
                    "key": "WFSDataStoreFactory:TIMEOUT",
                    "value": 30000
                },
                {
                    "key": "WFSDataStoreFactory:BUFFER_SIZE",
                    "value": 10
                },
                {
                    "key": "WFSDataStoreFactory:MAX_CONNECTION_POOL_SIZE",
                    "value": 6
                }
            ]
        },
        "_default": false
    }
}

是否有人经历过同样的行为?
提前致谢

Java REST GeoServer

评论

0赞 Ian Turton 11/17/2023
通常的解决方案是在 GUI 中设置所需的参数,然后发出 GET 请求以查看其编码方式并将该响应修改为模板。
0赞 Luca Palmarucci 11/17/2023
@IanTurton我已经按照你说的尝试并得到了模板,但也没有用
0赞 Ian Turton 11/17/2023
接下来要尝试的是使用 XML 而不是 JSON,其中失败了,然后提出错误并提交 PR
0赞 Luca Palmarucci 11/17/2023
@IanTurton 使用 XML 时,我有相同的结果

答: 暂无答案