WFS POST requests: "No template provided" error

Sean Gillies sgillies at FRII.COM
Thu Nov 8 11:58:55 EST 2007


Sir, my honor can be restored only by a duel. We each get one pistol
only for every mythical man-year we have spent on MapServer:

http://www.ohloh.net/projects/3692/contributors?page=1

Denial of a project's technical issues (and MapServer has fewer all the
time) is not sound software engineering. Punk.

Sean

John Smith wrote:
> frank,
> i simply ignore whinners like sean who just have 1 song to sing
> (actually 2, the other being how python is somehow not an interpreted
> language). back to mapserver...
> cheers, jzs
> 
> On Nov 8, 2007 10:53 AM, Sean Gillies <sgillies at frii.com> wrote:
>> Sorry, I got lost in the XML and HTTP weeds and forget you were using
>> foreign services. Like Daniel said, MapServer has a problem caused by
>> the way it overloads its single service endpoint. You might want to test
>> against a server that gets it right: GeoServer, or MapServer proxied
>> through another script.
>>
>> Sean
>>
>> Frank Steggink wrote:
>>> Sean (and others),
>>>
>>> As I said, the servers are not mine. They are public servers on the
>>> internet. I'm just making a client, and care about interoperability, so
>>> that's why I posted. (Even with a protocol which is flawed, but this is
>>> what I'm paid for at this moment.)
>>>
>>> I could try to set up MapServer myself, but since I've no MapServer
>>> experience, it will take quite some time. That's why I was asking
>>> someone else to look at it.
>>>
>>> About this message, is there any difference in setting MapServer up to
>>> handle GET and POST requests? If the "WFS handler for POST" isn't set up
>>> correctly, why isn't this reflected in the Capabilities document?
>>>
>>> Frank
>>>
>>>
>>> -----Original Message-----
>>> From: Sean Gillies [mailto:sgillies at frii.com]=20
>>> Sent: Thursday, November 08, 2007 10:05
>>> To: MAPSERVER-USERS at LISTS.UMN.EDU
>>> Cc: Frank Steggink
>>> Subject: Re: WFS POST requests: "No template provided" error
>>>
>>> POST is for creating new resource states! Use GET!
>>>
>>> Oh, wait, wrong list :)
>>>
>>> That "No template provided" error usually means what it says. Is your
>>> mapfile configed properly? Are you able to render maps from it using the
>>> shp2img utility?
>>>
>>> Sean
>>>
>>> Frank Steggink wrote:
>>>> Hello List,
>>>> =20
>>>> While developing a WFS client, I've encountered a problem with =3D=20
>>>> MapServer. I don't have a local setup of MapServer running, but use a=20
>>>> =3D few public available services at the web. Those are:
>>>> *    =3D
>>>> =
>>> http://map.ns.ec.gc.ca/MapServer/mapserv.exe?map=3D3D/mapserver/services
>>>> /en=3D
>>>> vdat/config.map (MapServer 4.8.3)
>>>> *    http://www.bsc-eoc.org/cgi-bin/bsc_ows.asp (MapServer 4.8.1)
>>>> =20
>>>> Our WFS client supports both GET and POST requests. It checks the =3D=20
>>>> Capabilities document which HTTP method to use. The document of the =
>>> =3D=20
>>>> first service can be found here: =3D=20
>>>> =
>>> http://map.ns.ec.gc.ca/MapServer/mapserv.exe?map=3D3D/mapserver/services
>>>> /en=3D=20
>>>> =
>>> vdat/config.map&SERVICE=3D3DWFS&VERSION=3D3D1.0.0&REQUEST=3D3DGetCapabili=
>>> tie
>>>> s&.=3D  GetCapabilities is always done with GET, but other requests =
>>> can=20
>>>> vary. =3D For testing purposes I made POST the default HTTP method for =
>>>> the =3D requests. When I try to do a DescribeFeatureType or a =
>>> GetFeature
>>>
>>>> to =3D these services with POST, I'm getting the following message:
>>>> =20
>>>> <HTML>
>>>> <HEAD><TITLE>MapServer Message</TITLE></HEAD>
>>>> <!-- MapServer version 4.8.3 OUTPUT=3D3DGIF OUTPUT=3D3DPNG =
>>> OUTPUT=3D3DJPEG =3D
>>>
>>>> OUTPUT=3D3DWBMP OUTPUT=3D3DPDF OUTPUT=3D3DSWF OUTPUT=3D3DSVG =
>>> SUPPORTS=3D3DPROJ =3D
>>>
>>>> SUPPORTS=3D3DFREETYPE SUPPORTS=3D3DWMS_SERVER SUPPORTS=3D3DWMS_CLIENT =
>>> =3D=20
>>>> SUPPORTS=3D3DWFS_SERVER SUPPORTS=3D3DWFS_CLIENT =
>>> SUPPORTS=3D3DWCS_SERVER =3D=20
>>>> SUPPORTS=3D3DTHREADS SUPPORTS=3D3DGEOS INPUT=3D3DJPEG =
>>> INPUT=3D3DPOSTGIS =3D=20
>>>> INPUT=3D3DOGR INPUT=3D3DGDAL INPUT=3D3DSHAPEFILE DEBUG=3D3DMSDEBUG --> =
>>> <BODY=20
>>>> BGCOLOR=3D3D"#FFFFFF">
>>>> mapserv(): Web application error. No template provided. <br>=20
>>>> </BODY></HTML>
>>>> =20
>>>> The Capabilites document lists the online resource URL's for =3D=20
>>>> DescribeFeatureType and GetFeature, so POST should be allowed for=20
>>>> these =3D WFS requests. I'm sure that the WFS request is correct, =
>>> since=20
>>>> it works =3D with other WFS servers, like Geoserver, and Oracle =
>>> Spatial=20
>>>> Web Services, =3D and I can not find anything that might be wrong on =
>>> my=20
>>>> side. Here is the =3D raw request (headers + post data):
>>>> =20
>>>> POST /envdat/map.aspx HTTP/1.1
>>>> Content-Type: text/xml
>>>> Host: map.ns.ec.gc.ca
>>>> Content-Length: 579
>>>> Expect: 100-continue
>>>> Proxy-Connection: Close
>>>> =20
>>>> <?xml version=3D3D"1.0" encoding=3D3D"iso-8859-1"?> =
>>> <DescribeFeatureType=20
>>>> version=3D3D"1.0.0" service=3D3D"WFS" =3D=20
>>>> xsi:schemaLocation=3D3D"http://www.opengis.net/wfs =3D=20
>>>> http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd" =3D=20
>>>> xmlns=3D3D"http://www.opengis.net/wfs" =3D=20
>>>> xmlns:b=3D3D"http://www.bentley.com/schemas/x-Bentley.XMLTemplate.0.1" =
>>> =3D
>>>
>>>> xmlns:xsi=3D3D"http://www.w3.org/2001/XMLSchema-instance" =3D=20
>>>> xmlns:ows=3D3D"http://www.opengis.net/ows" =3D=20
>>>> xmlns:xlink=3D3D"http://www.w3.org/1999/xlink" =3D=20
>>>> xmlns:ogc=3D3D"http://www.opengis.net/ogc" =3D=20
>>>> xmlns:xsd=3D3D"http://www.w3.org/2001/XMLSchema">
>>>>   <TypeName>wfs:envirodat</TypeName>
>>>> </DescribeFeatureType>
>>>> =20
>>>> While searching the mailing list, I found replies of people suggesting
>>>> =3D that WFS might not be enabled (MapServer not compiled with WFS=20
>>>> support), =3D but since WFS requests with GET work fine, this is=20
>>>> obviously not the =3D case. I also found another suggestion here: =3D=20
>>>> =
>>> http://lists.umn.edu/cgi-bin/wa?S2=3D3DMAPSERVER-USERS&q=3D3Dwfs+post+tem=
>>> p
>>>> lat=3D e&s=3D3D&f=3D3D&a=3D3D&b=3D3D. It is suggested to add the =
>>> parameters =3D=20
>>>> "service=3D3DWFS" and "version=3D3D1.0.0" to the URL for POST, but =
>>> this =3D=20
>>>> doesn't work either. Maybe I would need to test with a more recent =3D =
>>>> build, but I couldn't find one at the web. But this would mean that I=20
>>>> =3D have to change the online resource URL, but the correct URL cannot =
>>>> be =3D predicted. The correct URL to post to should be mentioned in =
>>> the=20
>>>> =3D Capabilities document. The second service (www.bsc-eoc.org) =
>>> returned
>>>
>>>> the =3D same reply with the parameters, but the first service (at =3D
>>>> map.ns.ec.gc.ca) returned this:
>>>> =20
>>>> <ServiceExceptionReport
>>>> xmlns=3D3D"http://www.opengis.net/ogc" =3D=20
>>>> xmlns:xsi=3D3D"http://www.w3.org/2001/XMLSchema-instance" =3D=20
>>>> xsi:schemaLocation=3D3D"http://www.opengis.net/ogc =3D=20
>>>> http://schemas.opengis.net/wms/1.1.1/OGC-exception.xsd">
>>>>   <ServiceException>
>>>> msWFSDispatch(): WFS server error. Incomplete WFS request: REQUEST =3D =
>>>> parameter missing
>>>>   </ServiceException>
>>>> </ServiceExceptionReport>
>>>> =20
>>>> If I would add the Request parameter, then it would be WFS / GET=20
>>>> again, =3D and that's not what I want. (Well, I normally do, but this =
>>> is
>>>
>>>> for =3D testing purposes.) I was getting similar responses with=20
>>>> GetFeature, but since I changed my =3D code, the WFS client doesn't =
>>> come
>>>
>>>> that far (because DescribeFeatureType =3D doesn't work) anymore.=3D20
>>>> =20
>>>> Since there are no problems with GET requests, our client can =3D=20
>>>> successfully query data. But since POST is also available, I would =3D =
>>>> expect it to work as well. I hope that someone can look into this. If=20
>>>> =3D POST really causes problems, it would be better to remove the=20
>>>> associated =3D online resource URL's from the Capabilities document.
>>>> =20
>>>> Regards,
>>>> =20
>>>> Frank Steggink
>>>> =3D20
>>>> Bentley Systems, Inc.
>>>> Software Developer Geospatial
>>>> =3D20
>>>> 3645, boul. Ste-Anne
>>>> Qu=3DE9bec, Qc. G1E 3L1
>>>> Canada
>>>> =3D20
>>>> Tel: +1 418 666 7691 ext. 289
>>>> E-mail: frank.steggink at bentley.com
>>>> WWW: http://www.bentley.com
>>>> =3D20
>>>> =20
> 



More information about the mapserver-users mailing list