Suite

En-tête xml geoserver pour cors xmlhttprequest


J'exécute geoserver-2.5.2. D'un serveur externe, je voudrais l'appeler comme source wfs avec ol3. Pour cela, je voudrais permettre à ce serveur externe d'accéder aux données. Il semble que j'ai besoin d'un en-tête pour le partage de ressources cross-origin (CORS). Comme Zia l'a essayé ici, le lien ne m'a pas été utile non plus, car le géoserveur ne fonctionnait plus après avoir modifié le fichier web.xml de la manière décrite dans le lien.

Je crois que j'ai besoin de l'accès pour appeler les données wfs.


Je sais que vous postez cette question depuis longtemps, mais je ne fais que résoudre le problème.

J'ai moi-même rencontré le même problème et j'ai essayé de nombreuses solutions discutées ici ou dans d'autres forums et j'ai finalement réussi à résoudre le problème de l'activation de Cross Origin dans Geoserver.

Après de nombreux essais, j'ai découvert que la solution est assez simple en suivant les étapes exactes qui se trouvent dans la page Web Jetty Jetty Cross Origin Filter.

Mais avec un petit changement, la page dit que nous devons copier ce qui suit Filtre d'origine croisée à la (Web.xml) fichier de configuration, mais la solution qui a fonctionné avec moi consiste à copier cette configuration xml de filtre dans (webdefault.xml) fichier de configuration, lors de l'application de cette modification, le géoserveur a fonctionné à merveille et je pouvais exécuter n'importe quel WFS, WMS GetFeatureInfoRequest au format JSON en utilisant AJAX au lieu d'utiliser l'âme IFrame.

J'utilise les versions logicielles suivantes :

  • OpenGeo sans limites v4.5 .
  • Géoserveur v 2.6.2 .
  • Jetée v 7.6.13.v20130916 .

Voici les étapes détaillées :

  1. Téléchargez la version correspondante des servlets Jetty en fonction de votre version de jetée à partir de cette page Jetty Servlets .
  2. Dans cet exemple, j'utilise jetée v7.6.13.v20130916 donc le fichier jar doit être nommé
    (jetty-servlets-7.6.13.v20130916.jar) le nom du fichier sera différent selon la version de la jetée - ne changez pas son nom car la jetée correspond au nom de la servlet avec sa version comme :
    jetty-servlets-<%JETTY_VERSION%>.jar, alors ne le renommez pas.
  3. Arrêtez les services (GeoServer, Postgres) et faites une copie du répertoire OpenGeo situé dans
    (C:Program Files (x86)oundlessOpenGeo) et également copier le répertoire OpenGeo situé dans
    (C:ProgramDataoundlessOpenGeo) avant de commencer ce tutoriel, par mesure de précaution.

  4. Copiez le fichier (jetty-servlets-7.6.13.v20130916.jar) (En l'état) dans le répertoire Jetty Lib
    (*C:Program Files (x86)oundlessOpenGeojettylib*) le répertoire peut également changer en fonction de votre répertoire d'installation.

  5. Copiez et collez les lignes XML suivantes dans le (webdefault.xml) situé dans
    (C:Program Files (x86)oundlessOpenGeojettyectwebdefault.xml), je ne suis pas sûr que l'emplacement de ces lignes à placer dans le fichier soit important ou non mais je les colle à partir de ligne #306 après.
 origine croisée org.eclipse.jetty.servlets.CrossOriginFilter  origine croisée /*
  1. Commencer le (GéoServeur, Postgres) prestations de service, attendre quelques secondes et accédez à la page du géoserveur, le géoserveur démarrera correctement.

Ce tutoriel a fonctionné pour moi et j'espère qu'il fonctionnera pour toute personne confrontée au même problème.


fwiw enable-cors.org est une excellente ressource générale pour les configurations de serveur ou de client, au cas où vous déployez avec Tomcat, par exemple.


Juste pour mentionner, Geoserver a récemment publié 2.9-RC1, qui est livré avec la jetée plus mise à jour (v9+) qui prend en charge CORS. Semblable à celui mentionné par Ahmed GIS, vous devez télécharger la version correcte des servlets jetty. Mais cette fois, il s'agit de copier dans le répertoire "WEB-INFlib", et pour éditer le fichier "WEB-INFweb.xml" au lieu.


Pour GeoServer 2.8 je résous par cette procédure :

http://2carto.com/enable-cors-domain-geoserver-2-8/#comment-53

J'ai essayé d'implémenter GeoServer 2.9 mais je ne peux pas résoudre ce problème, j'ai donc réinstallé GeoServer 2.8 et cela fonctionne.