2017-02-01 4 views
0

Я пытаюсь сохранить изменения с помощью WFS-T с помощью GeoServer: Это мой код, который получает возможность от GeoServerGeoserver 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' 
}); 

Но когда я saveFeature к серверу, эта ошибка произошла

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; 

Не могли бы вы мне помочь?

ответ

2

Это работает как шарм: http://osgeo-org.1560.x6.nabble.com/Read-only-error-when-editing-a-WFS-T-td5284537.html

Существует правило в разделе «Безопасность данных», которые позволяют написать в этой рабочей области для всех, но запись не разрешена для анонимного пользователя () .w) Странное поведение в том, что в вчера я могу редактировать слой с помощью клиента .. и я не понимаю, почему, более того, используя QGIS, я не могу отредактировать слой, но QGIS WFS-T

+0

он скорее всего работает в вашем браузере, потому что вы вошли в систему как администратор на той или другой вкладке, в то время как QGis не вошел в систему –

+0

Я использую postgis, и я вошел в систему postgis, а также мой браузер вошел в систему geoserver, но произошла ошибка. – jkh6100

Смежные вопросы