3 votos

WFS a través de Geoserver - ¿Proxy o problemas de MapDocument?

Me cuesta conseguir que funcione una superposición de WFS desde geoserver. Creo que cumplo todos los requisitos para que el WFS se muestre en mi mapa, pero la solicitud parece quedarse atascada en algún lugar... FireBug da el mensaje de error:

Access to restricted URI denied"  code: "1012
http://www.openlayers.org/api/OpenLayers.js
Line 1188

mientras que la línea 1188 contiene lo siguiente:

this._object.send(vData);if(bGecko&&!this._async){this.readyState=cXMLHttpRequest.OPENED;
fSynchronizeValues(this)while(this.readyState<cXMLHttpRequest.DONE)
{this.readyState++;fReadyStateChange(this);if(this._aborted)

Todas las aplicaciones se ejecutan en localhost, instalé el servidor web Apache y configuré un proxy, ya que se recomendó en la mayoría de los hilos sobre WFS que se ejecuta en localhost. Utilicé el proxy.cgi de http://trac.osgeo.org/openlayers/browser/trunk/openlayers/examples/proxy.cgi y permitió el acceso para 'localhost','localhost:80' y 'localhost:8080'igual con mi IP (IP, IP:80, IP:8080).

Cuando visito localhost/cgi-bin/proxy.cgi consigo ver la página de OpenLayers, así que debería funcionar. Mi variable WFS se ve así:

var wfs = new OpenLayers.Layer.Vector("WFS", {
            strategies: [new OpenLayers.Strategy.Fixed()],
            protocol: new OpenLayers.Protocol.WFS({          
            version: "1.1.0",
            url: "http://localhost:8080/geoserver/wfs",            
            featurePrefix: "workspacename",
            featureType: "layername",
            featureNS: "http://lvr", [tried many, it doesn´t need to be an existing URL right?]
            srsName: "EPSG:4326",
            geometryName: "the_geom"
            })          
            });

entonces puse

OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url=";  

¿Está completo y dónde lo pongo en el documento del mapa? ¿Alguien puede ayudar? He probado un montón de opciones, nada ayudó realmente pero parece que es algún problema de conexión/seguridad más que algo relacionado con el propio script del mapa... ¿Necesito necesariamente una variable de formato, una ubicación de esquema o un mapa de estilo? ¿Falta algo más importante?


Actualización de los comentarios:

Puedo abrirlo, escribiendo localhost:8080/map.html ... Y cuando hice eso, ¡los datos del WFS aparecieron!

No puedo creerlo - ¡¿Acabo de acceder al html erróneamente?! Error de principiante. Gracias geographika...

2voto

Swinders Puntos 1042

El error indica un problema entre dominios.

¿Cómo accede a su sitio? A través de http://localhost:80 o http://localhost:8080 ? ¿Y dónde está alojado su proxy? Debería coincidir con la ubicación y el puerto de su sitio.

Dices que estás ejecutando la aplicación localmente, pero tu mensaje de FireBug implica que estás usando el Javascript de OpenLayers alojado en: http://www.openlayers.org/api/OpenLayers.js

La alternativa es descargar y alojar los archivos JavaScript y CSS usted mismo desde http://openlayers.org/download/

Sin embargo, esto no debería suponer ninguna diferencia.

2voto

Adam Ernst Puntos 6939

Una solución rápida que evita la necesidad de usar proxies durante las pruebas es poner las páginas web en el directorio www de su directorio de datos de GeoServer. La página será entonces servida a través del mismo puerto y host que su WFS y todo funcionará bien.

En última instancia, necesitarás un proxy si (y sólo si) trasladas las páginas web a otra ubicación.

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