2017-02-01 1 views
0

Je suis en train d'enregistrer les modifications via WFS-T en utilisant GeoServer: Ceci est mon code qui devient fonction de geoserverGeoServer WFS-T est en lecture seule exception

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' 
}); 

Et Ceci est du code qui sauve fonction au serveur

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

Mais quand je saveFeature au serveur, de cette erreur est survenue

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) 

table wfs_geom a déjà une clé primaire, script de création:

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; 

Pourriez-vous me aider?

Répondre

2

Cela fonctionne comme un charme: http://osgeo-org.1560.x6.nabble.com/Read-only-error-when-editing-a-WFS-T-td5284537.html

Il y a une règle dans la section « sécurité des données » qui ne permettent d'écrire à cet espace de travail pour tous, mais l'écriture ne peut pas utilisateur anonyme Le comportement étrange est que hier, je peux éditer la couche en utilisant un client .. et je ne comprends pas pourquoi, en outre en utilisant QGIS je ne peux pas modifier la couche, mais QGIS soutien le WFS-T

+0

cela fonctionne très probablement dans votre navigateur parce que vous vous êtes connecté en tant qu'administrateur dans cet onglet ou un autre onglet, tandis que QGis n'a pas connecté –

+0

J'utilise postgis et, j'ai connecté postgis, et mon navigateur s'est connecté geoserver, mais une erreur est survenue. – jkh6100