【问题标题】:geoserver wfs-t is read-only exceptiongeoserver wfs -t 是只读异常
【发布时间】:2017-06-17 18:38:54
【问题描述】:

我正在尝试使用 GeoServer 通过 WFS-T 保存更改: 这是我从地理服务器获取功能的代码

var sourceWFS = new ol.source.Vector({
    loader: function (extent) {
        $.ajax('http://127.0.0.1:8080/geoserver/kairosDB/ows', {
            type: 'GET',
            data: {
                service: 'WFS',
                version: '1.1.0',
                request: 'getFeature',
                typename: 'wfs_geom',
                srsname: 'EPSG:3857',
                bbox: extent.join(',') + ',EPSG:3857'
            }
        }).done(function (response) {
            sourceWFS.addFeatures(formatWFS.readFeatures(response));
        });
    },
    // strategy: ol.loadingstrategy.tile(ol.tilegrid.createXYZ()),
    strategy: ol.loadingstrategy.bbox,
    projection: 'EPSG:3857'
});

这是将功能保存到服务器的代码

var formatGML = new ol.format.GML({
    featureNS: 'http://127.0.0.1:8080/geoserver/kairosDB',
    featureType: 'wfs_geom',
    srsName: 'EPSG:3857'
});

但是当我将功能保存到服务器时,发生了这个错误

2017-02-01 14:30:02,339 ERROR [geoserver.ows] - 
org.geoserver.wfs.WFSTransactionException: {http://127.0.0.1:8080/geoserver/kairosDB}wfs_geom is read-only
    at org.geoserver.wfs.Transaction.execute(Transaction.java:269)
    at org.geoserver.wfs.Transaction.transaction(Transaction.java:106)
    at org.geoserver.wfs.DefaultWebFeatureService.transaction(DefaultWebFeatureService.java:172)
    at sun.reflect.GeneratedMethodAccessor195.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)

wfs_geom 表已有主键,创建脚本:

CREATE TABLE public.wfs_geom
(
    id bigint NOT NULL,
    geometry geometry,
    CONSTRAINT wfs_geom_pkey PRIMARY KEY (id)
)
WITH (
    OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.wfs_geom
    OWNER to postgres;

GRANT ALL ON TABLE public.wfs_geom TO postgres;

-- Index: sidx_wfs_geom

-- DROP INDEX public.sidx_wfs_geom;

CREATE INDEX sidx_wfs_geom
    ON public.wfs_geom USING gist
    (geometry)
    TABLESPACE pg_default;

你能帮帮我吗?

【问题讨论】:

    标签: postgresql postgis openlayers-3 geoserver


    【解决方案1】:

    这就像一个魅力:http://osgeo-org.1560.x6.nabble.com/Read-only-error-when-editing-a-WFS-T-td5284537.html

    “数据安全”部分中有一条规则允许写入 所有人都到这个工作空间,但写作不允许匿名 所有工作区的用户 (..w) 奇怪的行为是 昨天我可以使用客户端编辑图层..我没有 理解为什么,此外使用 QGIS 我无法编辑图层,但是 QGIS 支持WFS-T

    【讨论】:

    • 它很可能在您的浏览器中工作,因为您已在该选项卡或其他选项卡中以管理员身份登录,而 QGis 尚未登录
    • 我用的是postgis,我登录了postgis,我的浏览器也登录了geoserver,但是出现了错误。
    【解决方案2】:

    为了使这成为可能,您需要在 GeoServer 中更改两件事。

    1. 在 GeoServer 的 WFS 选项卡下启用事务
    2. 在 GeoServer 的 Data 选项卡下,您需要编辑规则 ..w 以启用角色 ROLE_ANONYMOUS

    完成这两件事后,我能够摆脱这个错误并将数据发布到 GeoServer。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-03
      • 2019-01-16
      • 1970-01-01
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多