banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 15 October 2012 16:48

Lusitanio
Participant occasionnel
Date d'inscription: 1 Dec 2010
Messages: 22

Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

Bonjour à tous,

Je me résigne après moult recherche sur le web, à solliciter votre aide.
Je suis donc pleinement conscient de la redondance de ma requête mais force est de constater que ce problème n'est pas facilement abordable par le commun des mortels, tant les question à ce sujet (et qui demeurent souvent sans réponse) sont légions. 

En effet malgré que beaucoup de monde avant moi c'est posé la même question, et après avoir essayé plein d'exemple et/ou de conseil. Rien à faire cela ne fonctionne pas... ;(.

Contexte:

Je travail en local,

- Apache est installé (avec wamp) sur le port 8080,

- Geoserver 2.2 lui est sur le port 7070.

J'arrive sans  souci à importer depuis OpenLayers des données WMS, le problème vous vous en doutez consiste à intégrer des données en wfs.

voici mon code:

Code:

wfs = new OpenLayers.Layer.Vector("Editable Features", {
        strategies: [new OpenLayers.Strategy.Fixed()],
        projection: new OpenLayers.Projection("EPSG:2154"),
        protocol: new OpenLayers.Protocol.WFS({
            version: "1.1.0",
            srsName: "EPSG:2154",
            url: "http://localhost:7070/geoserver/wfs",
            featureNS :  "http://www.opengeospatial.net/work",
            featureType: "DEPARTEMENT_01"
            })

1er pb: Firebug m'indique que la strategy est undefined !

Ayant lu ci et là qu'il pourrait s'agir d'un pb de sécurité geoserver tournant sur un autre port que le 80, seules les images provenant d'un autre port que le 80 sont tolérées, par le navigateur

J'ai alors tenté de suivre ce qui est conseillé sur cette page :

http://trac.osgeo.org/openlayers/wiki/F … #ProxyHost en créant un fichier proxy.cgi que j'ai placé dans le dossier cgi-bin d'apache.

Mais il doit y avoir des choses qui m'échappe à ce niveau déjà parce que j'obtiens ce message d'erreur lorsque je teste le proxy (http://localhost:8080/cgi-bin/proxy.cgi)

The server encountered an internal error or misconfiguration and was unable to complete your request


.

Il doit y avoir des lignes à modifier ou ajouter, j'avoue qu'un peu d'aide sur la chose me serait bien utile, je suis géographe et non développeur... (même si je fais un peu de php, sql et de js). Les proxy ça m'échappe un peu lol. Mais c'est avec grand plaisir que j'accepterais toute aide avec les explications.


Voilà j'espère ne pas avoir été trop approximatif... ah oui c'est vraiment important pour moi car je dois développer rapidement une application afin de démontrer tout le potentiel d'OpenLayers, quant à l'édition et la gestion des données via du wfs-t.

******
EDIT

AH j'ai failli oublier j'ai aussi rajouté la ligne de code suivante au début du code js:

Code:

OpenLayers.ProxyHost="http://localhost:8080/cgi-bin/proxy.cgi?url="

afin d'indiquer ou se situe le proxy...
******

Merci par avance pour votre aide.

Dernière modification par Lusitanio (Mon 15 October 2012 16:53)

Hors ligne

 

#2 Mon 15 October 2012 18:16

Lusitanio
Participant occasionnel
Date d'inscription: 1 Dec 2010
Messages: 22

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

Bon j'avance à petits pas...

Je viens de tomber sur ce forum:

http://osgeo-org.1560.n6.nabble.com/pro … 12603.html

où il est conseillé de réaliser un proxy en php. Ca tombe bien j'ai wamp qui tourne...

Code:

<?php
 $ch = curl_init($_GET['url']);
 curl_setopt($ch, CURLOPT_HEADER, 0);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 $output = curl_exec($ch);
 curl_close($ch);
 echo $output;
?>

et ensuite de faire pointer le js vers ce fichier:

Code:

OpenLayers.ProxyHost = "localhost:8080/proxy.php?url=";

Apriori pas de souci....
Mais toujours au même point...;(

firebug me rapporte toujours la même erreur

Code:

TypeError: OpenLayers.Strategy is undefined

Dernière modification par Lusitanio (Mon 15 October 2012 18:29)

Hors ligne

 

#3 Tue 16 October 2012 09:47

Ceva
Participant occasionnel
Lieu: Biem Assi
Date d'inscription: 14 Oct 2009
Messages: 20

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

Bonjour Lusitanio,

le Problème est que tu configure mal ton proxy,
Deja, tu devra installé python;

je te donne un exemple se configuration proxy.

Code:

#!C:/Python27/python.exe -u


"""This is a blind proxy that we use to get around browser
restrictions that prevent the Javascript from loading pages not on the
same server as the Javascript.  This has several problems: it's less
efficient, it might break some sites, and it's a security risk because
people can use this proxy to browse the web and possibly do bad stuff
with it.  It only loads pages via http and https, but it can load any
content type. It supports GET and POST requests."""

import urllib2
import cgi
import sys, os

# Designed to prevent Open Proxy type stuff.

allowedHosts = ['www.openlayers.org', 'openlayers.org', 
                'labs.metacarta.com', 'world.freemap.in', 
                'prototype.openmnnd.org', 'geo.openplans.org',
                'sigma.openplans.org', 'demo.opengeo.org',
                'www.openstreetmap.org', 'sample.avencia.com', 'localhost:8080/geoserver', '127.0.0.1:8080/geoserver/wms', '127.0.0.1:8080', 'www.openplans.org/topp', '127.0.0.1:8080/geoserver/wfs']

method = os.environ["REQUEST_METHOD"]

if method == "POST":
    qs = os.environ["QUERY_STRING"]
    d = cgi.parse_qs(qs)
    if d.has_key("url"):
        url = d["url"][0]
    else:
        url = "http://www.openlayers.org"
else:
    fs = cgi.FieldStorage()
    url = fs.getvalue('url', "http://www.openlayers.org")

try:
    host = url.split("/")[2]
    if allowedHosts and not host in allowedHosts:
        print "Status: 502 Bad Gateway"
        print "Content-Type: text/plain"
        print
        print "This proxy does not allow you to access that location (%s)." % (host,)
        print
        print os.environ
  
    elif url.startswith("http://") or url.startswith("https://"):
    
        if method == "POST":
            length = int(os.environ["CONTENT_LENGTH"])
            headers = {"Content-Type": os.environ["CONTENT_TYPE"]}
            body = sys.stdin.read(length)
            r = urllib2.Request(url, body, headers)
            y = urllib2.urlopen(r)
        else:
            y = urllib2.urlopen(url)
        
        # print content type header
        i = y.info()
        if i.has_key("Content-Type"):
            print "Content-Type: %s" % (i["Content-Type"])
        else:
            print "Content-Type: text/plain"
        print
        
        print y.read()
        
        y.close()
    else:
        print "Content-Type: text/plain"
        print
        print "Illegal request."

except Exception, E:
    print "Status: 500 Unexpected Error"
    print "Content-Type: text/plain"
    print 
    print "Some unexpected error occurred. Error text was:", E

Chef de projet SIG

Hors ligne

 

#4 Tue 16 October 2012 11:25

Lusitanio
Participant occasionnel
Date d'inscription: 1 Dec 2010
Messages: 22

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

Bonjour Ceva!

Merci beaucoup de te pencher sur mon pb!

Ok je laisse tomber le proxy en php.

J'ai rajouter cette ligne de code dans mon proxy.cgi :

Code:

#!C:/Python32/python.exe -u

Ensuite j'ai bien dans mes allowedHosts = inscrits : 'localhost', 'localhost:8080' et 'localhost 7070' comme expliqué ici :
( Rubrique intitulée : Configuring an OpenLayers proxy.cgi for Loading Local and Remotely Hosted GeoServer WFS Data
http://www.gistutor.com/geoserver/21-in … ccess.html

Le fichier proxy.cgi est placé dans le répertoire C:/wamp/bin/apache/Apache2.2.21/cgi-bin.


Cependant, lorsque je test mon proxy à l'adresse localhost:8080/cgi-bin/proxy.cgi

le navigateur me renvoit :

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, _____@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.


Autre question :

N'y a-t'il pas des modifications à apporter au httpd.conf d'apache, telles que

Code:

<IfModule !mod_python.c>
LoadModule python_module modules/mod_python.so
</IfModule>
<IfModule mod_python.c>
AddDirectoryIndex index.py index.pyc
<Directory /var/www/localhost:8080/htdocs/>
AddHandler python-program .py
PythonDebug On
</Directory>
</IfModule>

Afin de charger python?

Dernière modification par Lusitanio (Tue 16 October 2012 11:26)

Hors ligne

 

#5 Tue 16 October 2012 18:24

Lusitanio
Participant occasionnel
Date d'inscription: 1 Dec 2010
Messages: 22

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

Bon compte rendu du 3° jour de recherche : ;(

Je n'ai plus l'erreur "Strategy undefined" de Firebug,

par contre toujours ce même pb de proxy!!

Petite précision,

- J'ai un server IIs qui tourne en local, sur le port 80, (xp pro), pour gérer l'envoi de mails.,
- Apache avec wamp sur le port 8080,
- geoserver sur le port 7070,
- postgres/postgis sur le port 7072,

Toutes ces précisions afin de m'aider à mieux configurer mon proxy.cgi que je vous donne ci-dessous :

Code:

#!C:/Python32/python.exe -u

"""This is a blind proxy that we use to get around browser
restrictions that prevent the Javascript from loading pages not on the
same server as the Javascript.  This has several problems: it's less
efficient, it might break some sites, and it's a security risk because
people can use this proxy to browse the web and possibly do bad stuff
with it.  It only loads pages via http and https, but it can load any
content type. It supports GET and POST requests."""

import urllib2
import cgi
import sys, os

# Designed to prevent Open Proxy type stuff.

allowedHosts = ['www.openlayers.org', 'openlayers.org', 
                'labs.metacarta.com', 'world.freemap.in', 
                'prototype.openmnnd.org', 'geo.openplans.org',
                'sigma.openplans.org', 'demo.opengeo.org',
                'www.openstreetmap.org', 'sample.azavea.com',
                'v2.suite.opengeo.org', 'v-swe.uni-muenster.de:8080', 
                'vmap0.tiles.osgeo.org', 'www.openrouteservice.org',
                'localhost','localhost:7070', 'localhost:8080']

method = os.environ["REQUEST_METHOD"]

if method == "POST":
    qs = os.environ["QUERY_STRING"]
    d = cgi.parse_qs(qs)
    if d.has_key("url"):
        url = d["url"][0]
    else:
        url = "http://www.openlayers.org"
else:
    fs = cgi.FieldStorage()
    url = fs.getvalue('url', "http://www.openlayers.org")

try:
    host = url.split("/")[2]
    if allowedHosts and not host in allowedHosts:
        print "Status: 502 Bad Gateway"
        print "Content-Type: text/plain"
        print
        print "This proxy does not allow you to access that location (%s)." % (host,)
        print
        print os.environ
  
    elif url.startswith("http://") or url.startswith("https://"):
    
        if method == "POST":
            length = int(os.environ["CONTENT_LENGTH"])
            headers = {"Content-Type": os.environ["CONTENT_TYPE"]}
            body = sys.stdin.read(length)
            r = urllib2.Request(url, body, headers)
            y = urllib2.urlopen(r)
        else:
            y = urllib2.urlopen(url)
        
        # print content type header
        i = y.info()
        if i.has_key("Content-Type"):
            print "Content-Type: %s" % (i["Content-Type"])
        else:
            print "Content-Type: text/plain"
        print
        
        print y.read()
        
        y.close()
    else:
        print "Content-Type: text/plain"
        print
        print "Illegal request."

except Exception, E:
    print "Status: 500 Unexpected Error"
    print "Content-Type: text/plain"
    print 
    print "Some unexpected error occurred. Error text was:", E

J'espère que ça va inspirer plus de monde, parce que je patauge mais grave!

Merci par avance pour toute votre aide!

Hors ligne

 

#6 Tue 16 October 2012 19:41

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

Bonsoir,

Que disent les logs apache ? Car une erreur 500 c'est vaste !

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#7 Wed 17 October 2012 10:04

Lusitanio
Participant occasionnel
Date d'inscription: 1 Dec 2010
Messages: 22

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

Bonjour Yves,

Désolé pour le manque d'automatisme, mais comme je l'ai dit je débute sur ce genre de souci... wink,

alors le log error d'apache :

Code:

[Tue Oct 16 18:18:04 2012] [notice] Child 4916: Acquired the start mutex.
[Tue Oct 16 18:18:04 2012] [notice] Child 4916: Starting 64 worker threads.
[Tue Oct 16 18:18:04 2012] [notice] Child 4916: Starting thread to listen on port 8080.
[Tue Oct 16 18:18:20 2012] [error] [client 127.0.0.1] (20024)The given path is misformatted or contained invalid characters: Cannot map GET /cgi-bin:proxy.cgi HTTP/1.1 to file
[Tue Oct 16 18:18:26 2012] [error] [client 127.0.0.1] (OS 3)Le chemin d'accès spécifié est introuvable.  : couldn't create child process: 720003: proxy.cgi
[Tue Oct 16 18:18:26 2012] [error] [client 127.0.0.1] (OS 3)Le chemin d'accès spécifié est introuvable.  : couldn't spawn child process: C:/wamp/bin/apache/Apache2.2.21/cgi-bin/proxy.cgi
[Tue Oct 16 18:18:36 2012] [error] [client 127.0.0.1] (OS 3)Le chemin d'accès spécifié est introuvable.  : couldn't create child process: 720003: proxy.cgi
[Tue Oct 16 18:18:36 2012] [error] [client 127.0.0.1] (OS 3)Le chemin d'accès spécifié est introuvable.  : couldn't spawn child process: C:/wamp/bin/apache/Apache2.2.21/cgi-bin/proxy.cgi
[Tue Oct 16 18:18:36 2012] [error] [client 127.0.0.1] (OS 3)Le chemin d'accès spécifié est introuvable.  : couldn't create child process: 720003: proxy.cgi
[Tue Oct 16 18:18:36 2012] [error] [client 127.0.0.1] (OS 3)Le chemin d'accès spécifié est introuvable.  : couldn't spawn child process: C:/wamp/bin/apache/Apache2.2.21/cgi-bin/proxy.cgi
[Tue Oct 16 18:18:36 2012] [error] [client 127.0.0.1] (OS 3)Le chemin d'accès spécifié est introuvable.  : couldn't create child process: 720003: proxy.cgi
[Tue Oct 16 18:18:36 2012] [error] [client 127.0.0.1] (OS 3)Le chemin d'accès spécifié est introuvable.  : couldn't spawn child process: C:/wamp/bin/apache/Apache2.2.21/cgi-bin/proxy.cgi
[Tue Oct 16 18:18:37 2012] [error] [client 127.0.0.1] (OS 3)Le chemin d'accès spécifié est introuvable.  : couldn't create child process: 720003: proxy.cgi
[Tue Oct 16 18:18:37 2012] [error] [client 127.0.0.1] (OS 3)Le chemin d'accès spécifié est introuvable.  : couldn't spawn child process: C:/wamp/bin/apache/Apache2.2.21/cgi-bin/proxy.cgi
[Tue Oct 16 18:18:37 2012] [error] [client 127.0.0.1] (OS 3)Le chemin d'accès spécifié est introuvable.  : couldn't create child process: 720003: proxy.cgi
[Tue Oct 16 18:18:37 2012] [error] [client 127.0.0.1] (OS 3)Le chemin d'accès spécifié est introuvable.  : couldn't spawn child process: C:/wamp/bin/apache/Apache2.2.21/cgi-bin/proxy.cgi
[Tue Oct 16 18:18:37 2012] [error] [client 127.0.0.1] (OS 3)Le chemin d'accès spécifié est introuvable.  : couldn't create child process: 720003: proxy.cgi
[Tue Oct 16 18:18:37 2012] [error] [client 127.0.0.1] (OS 3)Le chemin d'accès spécifié est introuvable.  : couldn't spawn child process: C:/wamp/bin/apache/Apache2.2.21/cgi-bin/proxy.cgi
[Tue Oct 16 18:18:37 2012] [error] [client 127.0.0.1] (OS 3)Le chemin d'accès spécifié est introuvable.  : couldn't create child process: 720003: proxy.cgi
[Tue Oct 16 18:18:37 2012] [error] [client 127.0.0.1] (OS 3)Le chemin d'accès spécifié est introuvable.  : couldn't spawn child process: C:/wamp/bin/apache/Apache2.2.21/cgi-bin/proxy.cgi

Visiblement le souci est là:

- mauvais placement du proxi.cgi?
- mauvaise url dans allowedHosts (peu probable)?
- mauvaise url de test? ->localhost:8080/cgi-bin/proxi.cgi (ce qui reviendrai à la prenière hypothèse).
- autre pb...?


quant au log access :

Code:

127.0.0.1 - - [16/Oct/2012:18:18:20 +0200] "GET /cgi-bin:proxy.cgi HTTP/1.1" 403 219
127.0.0.1 - - [16/Oct/2012:18:18:26 +0200] "GET /cgi-bin/proxy.cgi HTTP/1.1" 500 535
127.0.0.1 - - [16/Oct/2012:18:18:36 +0200] "GET /cgi-bin/proxy.cgi HTTP/1.1" 500 535
127.0.0.1 - - [16/Oct/2012:18:18:36 +0200] "GET /cgi-bin/proxy.cgi HTTP/1.1" 500 535
127.0.0.1 - - [16/Oct/2012:18:18:36 +0200] "GET /cgi-bin/proxy.cgi HTTP/1.1" 500 535
127.0.0.1 - - [16/Oct/2012:18:18:37 +0200] "GET /cgi-bin/proxy.cgi HTTP/1.1" 500 535
127.0.0.1 - - [16/Oct/2012:18:18:37 +0200] "GET /cgi-bin/proxy.cgi HTTP/1.1" 500 535
127.0.0.1 - - [16/Oct/2012:18:18:37 +0200] "GET /cgi-bin/proxy.cgi HTTP/1.1" 500 535
127.0.0.1 - - [16/Oct/2012:18:18:37 +0200] "GET /cgi-bin/proxy.cgi HTTP/1.1" 500 535

Hors ligne

 

#8 Wed 17 October 2012 10:06

Ceva
Participant occasionnel
Lieu: Biem Assi
Date d'inscription: 14 Oct 2009
Messages: 20

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

Bonjour,


attention effectivement mes test ont marché avec Python27

les test avec Python32 ne fonctionne pas
revoir donc ta version de python


Chef de projet SIG

Hors ligne

 

#9 Wed 17 October 2012 11:22

Ceva
Participant occasionnel
Lieu: Biem Assi
Date d'inscription: 14 Oct 2009
Messages: 20

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

les test que j'ai effectué étaient avec Python27

j'ai vérifie, cela ne marche pas Python32


revoir ta version de python


Chef de projet SIG

Hors ligne

 

#10 Wed 17 October 2012 11:38

Lusitanio
Participant occasionnel
Date d'inscription: 1 Dec 2010
Messages: 22

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

AH super! wink

Merci Ceva! Grâce à toi j'avance à grands pas!

Alors j'ai installé python 2.7,

le proxy est bien "appelé" mais maintenant j'obtiens le message d'erreur suivant :

Code:

Some unexpected error occurred. Error text was: <urlopen error [Errno 11001] getaddrinfo failed>

j'ai chercher sur google en rentrant le type d'erreur mais je n'ai rien trouvé de concluant ex :

http://www.forumsig.org/archive/index.php/t-27288.html

J'ai rajouté ces deux lignes dans le httpd.conf d'apache :

Options ExecCGI
AddHandler cgi-script cgi pl py


entre les balises :

Code:

<Directory "cgi-bin">
    AllowOverride None
    Options None

     Options ExecCGI
         AddHandler cgi-script cgi pl py

    Order allow,deny
    Allow from all
</Directory>

Mais toujours ce même message d'erreur.

Pour rappel je remet mon proxy.cgi tel qu'il est maintenant :

Code:

#!C:/Python27/python.exe -u

"""This is a blind proxy that we use to get around browser
restrictions that prevent the Javascript from loading pages not on the
same server as the Javascript.  This has several problems: it's less
efficient, it might break some sites, and it's a security risk because
people can use this proxy to browse the web and possibly do bad stuff
with it.  It only loads pages via http and https, but it can load any
content type. It supports GET and POST requests."""

import urllib2
import cgi
import sys, os

# Designed to prevent Open Proxy type stuff.

allowedHosts = ['www.openlayers.org', 'openlayers.org', 
                'labs.metacarta.com', 'world.freemap.in', 
                'prototype.openmnnd.org', 'geo.openplans.org',
                'sigma.openplans.org', 'demo.opengeo.org',
                'www.openstreetmap.org', 'sample.azavea.com',
                'v2.suite.opengeo.org', 'v-swe.uni-muenster.de:8080', 
                'vmap0.tiles.osgeo.org', 'www.openrouteservice.org',
                'localhost:7070', 'localhost:8080']

method = os.environ["REQUEST_METHOD"]

if method == "POST":
    qs = os.environ["QUERY_STRING"]
    d = cgi.parse_qs(qs)
    if d.has_key("url"):
        url = d["url"][0]
    else:
        url = "http://www.openlayers.org"
else:
    fs = cgi.FieldStorage()
    url = fs.getvalue('url', "http://www.openlayers.org")

try:
    host = url.split("/")[2]
    if allowedHosts and not host in allowedHosts:
        print "Status: 502 Bad Gateway"
        print "Content-Type: text/plain"
        print
        print "This proxy does not allow you to access that location (%s)." % (host,)
        print
        print os.environ
  
    elif url.startswith("http://") or url.startswith("https://"):
    
        if method == "POST":
            length = int(os.environ["CONTENT_LENGTH"])
            headers = {"Content-Type": os.environ["CONTENT_TYPE"]}
            body = sys.stdin.read(length)
            r = urllib2.Request(url, body, headers)
            y = urllib2.urlopen(r)
        else:
            y = urllib2.urlopen(url)
        
        # print content type header
        i = y.info()
        if i.has_key("Content-Type"):
            print "Content-Type: %s" % (i["Content-Type"])
        else:
            print "Content-Type: text/plain"
        print
        
        print y.read()
        
        y.close()
    else:
        print "Content-Type: text/plain"
        print
        print "Illegal request."

except Exception, E:
    print "Status: 500 Unexpected Error"
    print "Content-Type: text/plain"
    print 
    print "Some unexpected error occurred. Error text was:", E

Hors ligne

 

#11 Wed 17 October 2012 12:25

Ceva
Participant occasionnel
Lieu: Biem Assi
Date d'inscription: 14 Oct 2009
Messages: 20

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

je vois ou est le problème
Dans ton script java script: dans ton fontion init
tu dois ajouter cette ligne de code et pense que pourra aller

Code:

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

teste et fais moi signe


Chef de projet SIG

Hors ligne

 

#12 Wed 17 October 2012 12:53

Lusitanio
Participant occasionnel
Date d'inscription: 1 Dec 2010
Messages: 22

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

Merci Ceva, mais cette ligne de code est déjà présente sur mon script js. (En fait je test depuis le départ conjointement le proxy.cgi et le script js)

j'ai même spécifier l'hôte et le port :

Code:

OpenLayers.ProxyHost = "http://localhost:8080/cgi-bin/proxy.cgi?url=";

J'ai aussi testé simplement

Code:

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

mais là il me renvoie à l'erreur 500 du départ.

Je pense (enfin je crois vu mes compétences en la matière) que le pb est lié au proxi.cgi, car :

- Le message d'erreur cité dans mon précédent post intervient sur mon navigateur lorsque je test le proxy.cgi:

localhost:8080/cgi-bin/proxy.cgi

-> En rentrant cette adresse normalement je devrais être redirigé vers le site "openlayers.org".

Mais tout ce que j'obtiens c'est l'erreur errno 11001 apparemment lié à python et/ou au proxy.cgi... enfin c'est que je comprend suite à mes différentes recherche sur le net...

Dernière modification par Lusitanio (Wed 17 October 2012 12:55)

Hors ligne

 

#13 Wed 17 October 2012 14:26

Ceva
Participant occasionnel
Lieu: Biem Assi
Date d'inscription: 14 Oct 2009
Messages: 20

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

le problème ne peut pas venir de python ni du proxy.

En effet c'est ce proxy que j'utilise et il fonctionne bien.

redémarrer tous tes serveur ( wamp et tomcat )
ça devrait marcher

Dernière modification par Ceva (Wed 17 October 2012 14:44)


Chef de projet SIG

Hors ligne

 

#14 Wed 17 October 2012 20:31

Lusitanio
Participant occasionnel
Date d'inscription: 1 Dec 2010
Messages: 22

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

Ok je teste dès demain au boulot, j'étais en réunion cet après-midi.

Je vais copier coller ton proxy.cgi, ajouter les allowedHost qui vont bien,

redémarrer tous mes server et je te tiens au courant.

A demain et merci encore. wink

Hors ligne

 

#15 Thu 18 October 2012 15:51

Lusitanio
Participant occasionnel
Date d'inscription: 1 Dec 2010
Messages: 22

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

J'ai redémarré wamp, tomcat je l'ai pas, j'ai même mis à jour wamp (et donc apache)

J'ai modifier le proxy.cgi avec tes lignes de codes données plus haut en adaptant les allowedHost en fonction de mes ports

Toujours le même souci :

Code:

Some unexpected error occurred. Error text was: <urlopen error [Errno 11001] getaddrinfo failed>

Quand je parlais d'un pb au niveau du proxy ou de python, je ne remettais en cause ni python ni le proxy bien entendu, je voulais juste dire qu'ils doivent être mal appelés ou mal utilisés du fait d'une mauvaise configuration... peut être au niveau du httpd.conf.

Et en cherchant sur internet en se rend compte que le message d'erreur cité ci-dessus est un message d'erreur python...

Là en gros je sèche à mort... et pourtant je ne suis pas loin de toucher au but.


En tout cas merci Ceva pou ton aide, j'ai quand même bien avancé.

Je sais pas si t'as d'autres idées... et si quelqu'un d'autre passe par là je suis bien entendu plus que preneur!! wink

pour info le log d'apache:

Code:

127.0.0.1 - - [18/Oct/2012:15:36:21 +0200] "GET /cgi-bin/proxy.cgi HTTP/1.1" 500 98
127.0.0.1 - - [18/Oct/2012:15:36:55 +0200] "GET /cgi-bin/proxy.cgi HTTP/1.1" 500 98
127.0.0.1 - - [18/Oct/2012:15:37:51 +0200] "GET /cgi-bin/proxy.cgi HTTP/1.1" 500 98
127.0.0.1 - - [18/Oct/2012:15:47:49 +0200] "GET /cgi-bin/proxy.cgi HTTP/1.1" 500 98

apache_log_error

Code:

 in <b>Unknown</b> on line <b>0</b><br />
[Thu Oct 18 15:36:50 2012] [notice] Child 8128: Child process is running
[Thu Oct 18 15:36:50 2012] [notice] Child 8128: Acquired the start mutex.
[Thu Oct 18 15:36:50 2012] [notice] Child 8128: Starting 64 worker threads.
[Thu Oct 18 15:36:50 2012] [notice] Child 8128: Starting thread to listen on port 8080.

*****
EDIT :

Une erreur apparait sur FireBug, cela fait un moment que je la voit,

je ne sais pas si c'est lié mais au cas je la donne:

Code:

<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=ISO-8859-1" />

*****

Dernière modification par Lusitanio (Thu 18 October 2012 18:01)

Hors ligne

 

#16 Fri 19 October 2012 10:01

Ceva
Participant occasionnel
Lieu: Biem Assi
Date d'inscription: 14 Oct 2009
Messages: 20

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

Bonjour,

vérifie bien que le chemin le l'installation de pyton27

est celui qui est dans ton proxy

qu'est est ton système d'exploitation?


Chef de projet SIG

Hors ligne

 

#17 Fri 19 October 2012 10:33

Ceva
Participant occasionnel
Lieu: Biem Assi
Date d'inscription: 14 Oct 2009
Messages: 20

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

je viens de faire les test avec wamp et ce proxy sous xp et 7.

CA fonctionne BIEN

je me dis à priori que ton pb vient du  fait du chemin de l’installation de python 27

Dernière modification par Ceva (Fri 19 October 2012 11:44)


Chef de projet SIG

Hors ligne

 

#18 Fri 19 October 2012 11:34

Lusitanio
Participant occasionnel
Date d'inscription: 1 Dec 2010
Messages: 22

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

Tout d'abord merci de ne pas laisser tomber!! (ça fait bcp de merci lol)

J'ai du nouveau !!

log erreur d'apache :

Code:

[Fri Oct 19 11:19:13 2012] [error] [client 127.0.0.1]   File "C:\\Python27\\lib\\cgi.py", line 549, in getvalue\r
[Fri Oct 19 11:19:13 2012] [error] [client 127.0.0.1]     if key in self:\r
[Fri Oct 19 11:19:13 2012] [error] [client 127.0.0.1]   File "C:\\Python27\\lib\\cgi.py", line 595, in __contains__\r
[Fri Oct 19 11:19:13 2012] [error] [client 127.0.0.1]     raise TypeError, "not indexable"\r

Système d'exploitation:
- xp pro version 2002 sp3,

Quant à :

vérifie bien que le chemin le l'installation de pyton27

est celui qui est dans ton proxy


Je l'ai vérifié maintes fois et je crois que le message d'erreur fournit ci dessus le confirme...

c'est frustrant... on est pas loin!

******
EDIT

je rajoute un log de wamp le log "access.log"

Code:

127.0.0.1 - - [19/Oct/2012:11:43:33 +0200] "OPTIONS /cgi-bin/proxy.cgi?url=http%3A%2F%2Flocalhost%3A7070%2Fgeoserver%2Fwfs HTTP/1.1" 500 542
127.0.0.1 - - [19/Oct/2012:11:44:23 +0200] "OPTIONS /cgi-bin/proxy.cgi?url=http%3A%2F%2Flocalhost%3A7070%2Fgeoserver%2Fwfs HTTP/1.1" 500 542
127.0.0.1 - - [19/Oct/2012:11:44:28 +0200] "GET /cgi-bin/proxy.cgi HTTP/1.1" 500 542
127.0.0.1 - - [19/Oct/2012:11:44:35 +0200] "GET /cgi-bin/proxy.cgi HTTP/1.1" 500 97
127.0.0.1 - - [19/Oct/2012:11:46:43 +0200] "OPTIONS /cgi-bin/proxy.cgi?url=http%3A%2F%2Flocalhost%3A7070%2Fgeoserver%2Fwfs HTTP/1.1" 500 542

J'ai l'impression qu'il me liste des erreurs: 500, 542 et 97...?! o_O


******

Dernière modification par Lusitanio (Fri 19 October 2012 11:50)

Hors ligne

 

#19 Fri 19 October 2012 11:54

Ceva
Participant occasionnel
Lieu: Biem Assi
Date d'inscription: 14 Oct 2009
Messages: 20

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

qu'est que ton navigateur montre lorsque tu exécute ceci

Code:

http://localhost/cgi-bin/proxy.cgi

Chef de projet SIG

Hors ligne

 

#20 Fri 19 October 2012 12:14

Ceva
Participant occasionnel
Lieu: Biem Assi
Date d'inscription: 14 Oct 2009
Messages: 20

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

teste aussi sa couches que tu souhaite ajouter via la prévisualisation dans geoserver. afin de te rassurer que ce n'est pas ta couche le pb.


Chef de projet SIG

Hors ligne

 

#21 Fri 19 October 2012 15:43

Lusitanio
Participant occasionnel
Date d'inscription: 1 Dec 2010
Messages: 22

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

http://localhost c'est le service smtp de IIS que j'utilise pour une autre application web, afin tu t'en doute d'envoyer des mails.

Ma couche fonctionne très bien en wms et même en wfs à partir de postgis et même directement en shp via geoserver, et ce vers Map Info et Qgis.

Quant à OpenLayers le pb est que le proxy est mal appelé ou bloqué...

Je viens d'essayer sur mon pc perso et là oh miracle le proxy me reconduit bien vers le site openlayers.org.

Alors quelle différence avec mon pc de bureau?

-> Mon pc perso est hors réseau ( à l'inverse du pc de bureau),
-> Il n'y a pas de service IIS activé donc le port 80 est dédié à apache (alors que sur le pc de bureau c'est le 8080),
-> Il n'y a pas de proxy pour la connexion vers l'extranet. => à priori il ne pose pas de souci vu que j'ai désactivé l'utilisation du proxy vers l'extranet et que mes bdd postgis et shape sont en local.

A mon humble avis il s'agit plutôt d'un pb de port entre le 8080 d'apache et le 7070 de geoserver qui pourrait peut-être être résolu en passant par un virtualhost.


Je vais orienter mes recherches dans ce sens...

A moins que le pb soit ailleurs, dans ce cas je suis à l'écoute!

Merci encore Ceva, j'arrive au moins à faire fonctionner le proxy sur mon pc perso portable, je vais pouvoir avancer sur openlayers, et tester les fonctionnalités. wink même si j'aimerais que ça fonctionne aussi sur au boulot mais bon c'est déjà ca!! smile

Hors ligne

 

#22 Fri 19 October 2012 16:28

Ceva
Participant occasionnel
Lieu: Biem Assi
Date d'inscription: 14 Oct 2009
Messages: 20

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

Ravi qu'enfin CA aille.


Maintenant je propose de garder les même configuration que sur ton poste perso; et de changer les ports des services additionnels(iis par exemple).

Du courage .

Dernière modification par Ceva (Fri 19 October 2012 16:30)


Chef de projet SIG

Hors ligne

 

#23 Mon 22 October 2012 16:51

rsouris
Juste Inscrit !
Date d'inscription: 11 Oct 2012
Messages: 2

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

Bonjour à tous,
Je suis en train de me heurter au même problème que Lusitanio.
J'ai ajouté le proxy.cgi (fourni par openlayers) et complété les informations necessaires dans allowedHosts.

J'ai d'abord rencontré un premier problème lié aux droits d'accès du fichier proxy.cgi (un certain : "Fobidden. You don't have permission to access /cgi-bin/proxy.cgi on this server."), que j'ai résolu avec un 'chmod 755 proxy.cgi'.

Maintenant que ce premier problème est résolu et que mon proxy s'execute bien, il me retourne un message d'erreur :
POST http://localhost:8888/cgi-bin/proxy.cgi?url=http%3A%2F%2Flocalhost%3A8080%2Fgeoserver%2FZoneInteret%2Fwfs  500 Unexpected Error
    Réponse:
Some unexpected error occurred. Error text was: HTTP Error 504: Gateway Time-out

Plus d'éléments de contexte:
* le proxy fonctionne bien, je l'utilise également pour récupéré une réponse json d'un catalogue d'images.
* la requête vers mon geoserver http://localhost:8080/geoserver/ZoneInteret/wfs sans passer par le proxy fonctionne bien également et me retourne une réponse xml (testé grâce à l'extension firefox Poster).
* le corp de la requête qui a été créé par l'API openLayer est valide :

<wfs:GetFeature 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.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<wfs:Query typeName="ZoneInteret:empZI" srsName="EPSG:3857">
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
<ogc:BBOX>
<ogc:PropertyName>emprise</ogc:PropertyName>
<gml:Envelope xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:3857">
    <gml:lowerCorner>-2426362.670664522 4782677.227401555</gml:lowerCorner>
    <gml:upperCorner>2871640.633837616 7101470.917460661</gml:upperCorner>
</gml:Envelope></ogc:BBOX>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>

=> Mais la requête GetFeature, en POST vers geoserver à travers un proxy, ne fonctionne pas...

Et vu le message d'erreur que j'ai, je suis un peu bloqué dans la résolution du problème. :s
Ce problème et cette question sont très répandu sur le web mais restent quasiment toujours sans réponse concluante, je fait appel à vous, communauté de GeoRezo, pour essayer de trouver plus d'éléments de réponses à ce grand méchant loup de problème!

Merci pour votre aide,
R.S.

Hors ligne

 

#24 Wed 24 October 2012 17:16

rsouris
Juste Inscrit !
Date d'inscription: 11 Oct 2012
Messages: 2

Re: Pb pour ajouter WFS sur OpenLayers, avec Geoserver.

Rebonjour à vous depuis mon dernier message,
Un petit message pour vous tenir au courant de la résolution de mon problème.

Le problème était dû aux adresses autorisées.
J'avais bien ajouté 'localhost:8080' dans la liste des allowedHosts du proxy qui correspondais bien à l'adresse de mon geoserver : http://localhost:8080/geoserver/ZoneInteret/wfs.
En changeant localhost par mon adresse ip (à la fois dans le proxy.cgi et dans l'url à requeter dans la requete wfs), et bien ça fonctionne!

Voilà, en espérant que cette astuce puisse aider des gens dans la même situation.
a+
R.S.

Hors ligne

 

Pied de page des forums

Powered by FluxBB