4 votos

Cadena actualización - sólo primer carácter se almacena

Cliente: OpenLayers / Servidor: Geoserver

Cuando me actualización de un WFS Elemento,

JAVASCRIPT:

element.feature.attributes.ENAME = "Mystring";
saveStrategy.save();

HTTP-POST:

 <wfs:Property>
  <wfs:Name>ENAME</wfs:Name>
  <wfs:Value>MyString</wfs:Value>
</wfs:Property>

algunas de las características de Tipo String no recibe totalmente actualizado, sólo la primera letra termina en la capa WFS.

<wfs:FeatureCollection ...>
    ...
   <Project:ENAME>
       M
   </Project:ENAME>
</wfs:FeatureCollection>
//only M ends up on the server, not Mystring as expected

la respectiva línea en el fichero de registro (log catalina.out) dice:

        name = ENAME
        value = Mystringproperty[0]:

extrañamente, la propiedad adjunta[0] es en todos los atributos, no sólo sobre el cual se reduce a su primera carta, pero también en algunas cadenas que no se acortan así como algunos enteros.

Yo esperaría que el tipo de la característica a ser algo como String[1], pero tan lejos como puedo ver el Tipo de Sistema, no hay ninguna longitud de atributos para las Cadenas.

Quién sabe qué puedo hacer?


ACTUALIZACIÓN


Al cambiar el valor de alguna característica del atributo (ENAME) con OpenJump y cargar los datos modificados, mi aplicación se muestra la función correctamente, lo que significa que la geoserver sí PUEDE almacenar una cadena de más de 1 en el atributo respectivo.

Sin embargo, cada vez que hago una actualización a través de OpenLayers, sin importar sobre qué característica, cualquier otra característica del ENAME atributo obtiene acortado (como el de 'Micadena' a 'M'), incluso si se trataba de un tipo totalmente diferente de la característica que fue actualizada en OpenLayers.

El registro (catalina.fuera no dice NADA acerca de este pérfido operación de actualización.


ACTUALIZACIÓN


El contenido de el Firebug Post FICHA, el Contenido de la respectiva Sección Registro:

<wfs:Transaction xmlns:wfs="http://www.opengis.net/wfs" service="WFS" version="1.1.0" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/WFS-transaction.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <wfs:Update typeName="feature:Graeber" xmlns:feature="myserver.de/ah_neu"> <wfs:Property> <wfs:Name>the_geom</wfs:Name> <wfs:Value> <gml:MultiPolygon xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:31466"> <gml:polygonMember> <gml:Polygon> <gml:outerBoundaryIs> <gml:LinearRing> <gml:coordinates decimal="." cs="," ts=" ">363261.475316,5770742.697063 363260.253031,5770742.452777 363260.011425,5770743.66165201 363261.233711,5770743.90593801 363261.475316,5770742.697063</gml:coordinates> </gml:LinearRing> </gml:outerBoundaryIs> </gml:Polygon> </gml:polygonMember> </gml:MultiPolygon> </wfs:Value> </wfs:Property> <wfs:Property> <wfs:Name>LAYER</wfs:Name> <wfs:Value>Grab</wfs:Value> </wfs:Property> <wfs:Property> <wfs:Name>GRABNAME</wfs:Name> <wfs:Value>Huber</wfs:Value> </wfs:Property> <wfs:Name>NUTZENDE</wfs:Name> <wfs:Value>2023-07-14</wfs:Value> </wfs:Property> <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"> <ogc:FeatureId fid="Graeber.203"></ogc:FeatureId> </ogc:Filter> </wfs:Update> </wfs:Transaction>

2015-01-20 17:01:00,671 INFO [geoserver.wfs] - Request: transaction service = WFS version = 1.1.0 baseUrl = http://myserver.de:80/geoserver/ group[0] = wfs:update=net.opengis.wfs.impl.UpdateElementTypeImpl@53a7e8d6 (filter: [ Graeber.203 ], handle: null, inputFormat: <unset>, srsName: null, typeName: {myserver.de/ah_neu}Graeber) update[0]: property[0]: name = the_geom value = MULTIPOLYGON (((363248.39039900305 5770772.417071999, 363249.21531199943 5770770.058744, 363248.0047730003 5770769.655668, 363248.0010000006 5770769.667, 363247.17900000024 5770772.016999999, 363248.39039900305 5770772.417071999)))property[0]: name = LAYER value = Grabproperty[0]: name = GRABNAME value = Huberproperty[0]: name = NUTZENDE value = 2023-07-14 filter = [ Graeber.203 ] inputFormat = x-application/gml:3 typeName = {myserver.de/ah_neu}Graeber releaseAction = ALL


Aun no se ha resuelto

Capa WFS:


<xsd:schema elementFormDefault="qualified" targetNamespace="myserver.de/ah_neu"> <xsd:import namespace="http://www.opengis.net/gml" schemaLocation="http://myserver.de/geoserver/schemas/gml/2.1.2/feature.xsd"/> <xsd:complexType name="GraeberType"> <xsd:complexContent> <xsd:extension base="gml:AbstractFeatureType"> <xsd:sequence> <xsd:element maxOccurs="1" minOccurs="0" name="the_geom" nillable="true" type="gml:MultiPolygonPropertyType"/> <xsd:element maxOccurs="1" minOccurs="0" name="LAYER" nillable="true" type="xsd:string"/> <xsd:element maxOccurs="10" minOccurs="0" name="GRABNAME" nillable="true" type="xsd:string"/> <xsd:element maxOccurs="1" minOccurs="0" name="NUTZENDE" nillable="true" type="xsd:dateTime"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="Graeber" substitutionGroup="gml:_Feature" type="ah_neu:GraeberType"/> </xsd:schema>

Javascript definición:

layer_selectable = new OpenLayers.Layer.Vector("WFS", { strategies : [new OpenLayers.Strategy.BBOX(), saveStrategy], styleMap: new OpenLayers.StyleMap({ 'default': style, 'select': style_selected }), protocol : new OpenLayers.Protocol.WFS({ url : geoserver + config.wfs_layer, version : "1.1.0", featureType : "Graeber", featureNS : config.featureNS, srsName : epsg, }), renderers : renderer //tileOptions: {crossOriginKeyword: 'anonymous'} });

1voto

bob-the-destroyer Puntos 138

ok, entonces yo sugeriría dos pasos:

Recarga Featuretype (en las capas de ajustes)

reload feature type

Y justo después de una verificación insertar el archivo de registro dentro de la Geoserver WebUI. Ahí puede encontrar información acerca de los wfs insertar: (captura de pantalla de geoserver con defecto de las propiedades de registro): enter image description here

y una pregunta más: cuando se utiliza OpenJump hizo editar el PostGIS-Capa o directamente la WFS-T-Capa?

1voto

bob-the-destroyer Puntos 138

Usted puede editar su Servicio WFS-T directamente con QGIS, por ejemplo, para ver si es un error de javascript de la aplicación o de geoserver sí mismo.

http://docs.qgis.org/2.2/en/docs/user_manual/working_with_ogc/ogc_client_support.html la sección "WFS y WFS-T Cliente" ( o en alemán: "QGIS ela OGC Datenclient")

En QGIS también se podría comprobar que el límite se establece para el carácter longitud de la columna en la que se corta (en la Capa-Propiedades):

feldlaenge

Han considerado que la importación de los shapefile a postgis y, a continuación, publicar la capa directamente de un postgis-tienda?

Si te gusta, usted puede publicar el javascript de código en http://jsfiddle.net/ o http://www.codeshare.io/

El Contenido de el Firebug Post FICHA y el Contenido de la respectiva Sección Registro publicado, muestra diferentes versiones(1.0.0 vs 1.1.1):

<wfs:Transaction xmlns:wfs="http://www.opengis.net/wfs" service="WFS" version="1.0.0"
and logfile:
2015-01-20 17:01:00,671 INFO [geoserver.wfs] - 
Request: transaction
    service = WFS
    version = 1.1.0

pero supongo que estas dos formas de trata, ¿no?

1voto

bob-the-destroyer Puntos 138

¿Has probado a cambiar a una versión diferente de la CMA en el código de OpenLayers antes?

¿y podría usted por favor enviar el contenido de Firebug/red-ficha/Post-Tab? (ver imagen)Firebug Network Tab Output

1voto

bob-the-destroyer Puntos 138

Usted podría intentar siguientes: Asegúrese de que no utiliza el prefijo de espacio de trabajo en la dirección url de geoserver

y añadir algunos parámetros más como el esquema:

versión 1.1.1

¿Esto marca una diferencia?

1voto

bob-the-destroyer Puntos 138

cosa bien extraña...

lo que se puede comprobar es el featurestate... o sólo hacer una copia de lo shapefile, borrar sus datos sensitiv/confidencial si es necesario, inserte dos/tres dummy-características y enviarme el archivo. Entonces yo podría darle una oportunidad.

Aquí el código:

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X