Suite

WFS via Geoserver - Problèmes de proxy ou de MapDocument ?

WFS via Geoserver - Problèmes de proxy ou de MapDocument ?


J'ai du mal à faire fonctionner une superposition WFS du géoserveur. Je pense que je remplis toutes les conditions pour que le WFS s'affiche dans ma carte, mais la demande semble se bloquer quelque part… FireBug donne le message d'erreur :

Accès à l'URI restreint refusé" code : "1012 http://www.openlayers.org/api/OpenLayers.js Ligne 1188

alors que la ligne 1188 contient les éléments suivants :

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

Toutes les applications s'exécutent sur localhost, j'ai installé Apache Webserver et configuré un proxy car cela était recommandé dans la plupart des threads concernant WFS s'exécutant sur localhost. J'ai utilisé le proxy.cgi de http://trac.osgeo.org/openlayers/browser/trunk/openlayers/examples/proxy.cgi et autorisé l'accès pour 'localhost', 'localhost:80' et 'localhost:8080'same avec mon IP (IP, IP:80, IP:8080).

Lorsque je visite localhost/cgi-bin/proxy.cgi, je vois la page OpenLayers, donc cela devrait fonctionner! Ma variable WFS ressemble à ceci :

var wfs = new OpenLayers.Layer.Vector("WFS", { stratégies : [new OpenLayers.Strategy.Fixed()], protocole : new OpenLayers.Protocol.WFS({ version : "1.1.0", url : "http ://localhost:8080/geoserver/wfs", featurePrefix: "workspacename", featureType: "layername", featureNS: "http://lvr", [en a essayé plusieurs, cela n'a pas besoin d'être une URL existante, n'est-ce pas ? ] srsName : "EPSG:4326", geometryName : "the_geom" }) });

puis j'ai mis

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

Celui-ci est-il complet et où dois-je le mettre dans la carte ? Quelqu'un peut-il aider? J'ai essayé beaucoup d'options, rien n'a vraiment aidé, mais il semble qu'il s'agisse d'un problème de connexion/sécurité plutôt que de quelque chose lié au script de carte lui-même… Ai-je nécessairement besoin d'une variable de format, d'un emplacement de schéma ou d'un stylemap ? Il manque autre chose d'important ?


Mise à jour des commentaires :

je peux l'ouvrir en tapant localhost:8080/map.html… Et quand je viens de faire ça, les données WFS sont apparues !

Je ne peux pas le croire - je viens d'accéder au code html à tort ?! Erreur de débutant. Merci geographika…


Une solution rapide qui évite d'avoir recours à des proxys lors des tests consiste à placer vos pages Web dans le répertoire www de votre répertoire de données GeoServer. La page sera alors servie via le même port et hôte que votre WFS et tout fonctionnera correctement.

En fin de compte, vous aurez besoin d'un proxy si (et seulement si) vous déplacez les pages Web vers un autre emplacement.


L'erreur indique un problème inter-domaines.

Comment accédez-vous à votre site ? Via http://localhost:80 ou http://localhost:8080 ? Et où est hébergé votre proxy ? Il doit correspondre à l'emplacement et au port de votre site.

Vous dites que vous exécutez l'application localement, mais votre message FireBug implique que vous utilisez le Javascript OpenLayers hébergé sur : http://www.openlayers.org/api/OpenLayers.js

L'alternative est de télécharger et d'héberger vous-même les fichiers JavaScript et CSS à partir de http://openlayers.org/download/

Cela ne devrait pas faire de différence cependant.