1

I've got a TinyOWS on localhost that works fine (both through browser GetFeature and QGIS). But my OpenLayers code fails. I've checked here: Display a WFS layer with OpenLayers and here : How to add a simple WFS layer from GeoServer to OpenLayers map? and other similar questions to no avail. Can anyone help?

Here is the code:

    wfs = new OpenLayers.Layer.Vector("Editable Features", {
    strategies : [new OpenLayers.Strategy.Fixed(), saveStrategy],
    projection: new OpenLayers.Projection("EPSG:4326"),
    protocol: new OpenLayers.Protocol.WFS({
        version: "1.1.0",
        srsName: "EPSG:4326",
        url: "http://localhost/cgi-bin/tinyows",
        featurePrefix: "tows",
        featureNS :  "http://www.tinyows.org/",
        featureType: "trad",
        geometryName: "wkb_geometry",
        schema: "http://127.0.0.1/cgi-bin/tinyows?service=WFS&version=1.1.0&request=DescribeFeatureType&Typename=tows:trad"
    })
}); 

map.addLayers([gphy, wfs]);

Here is the xml according to Firebug:

<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">

Here is the post response according to firebug:

<?xml version='1.0' encoding='UTF-8'?>
<ows:ExceptionReport
  xmlns='http://www.opengis.net/ows'
  xmlns:ows='http://www.opengis.net/ows'
  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
  xsi:schemaLocation='http://www.opengis.net/ows http://schemas.opengis.net/ows/1.0.0/owsExceptionReport.xsd'
  version='1.1.0' language='en'>
<ows:Exception exceptionCode='InvalidParameterValue' locator='request'>
<ows:ExceptionText>XML request isn't valid</ows:ExceptionText>
</ows:Exception>
</ows:ExceptionReport>

Here is the TinyOWS config file:

<tinyows online_resource="http://127.0.0.1/cgi-bin/tinyows"
     schema_dir="/usr/local/tinyows/schema/">
<pg host="127.0.0.1" user="postgres" password="****" dbname="****" port="5432"/>
<metadata name="TinyOWS Server"
       title="TinyOWS Server - Demo Service" />
<layer retrievable="1"
    writable="1"
    ns_prefix="tows"
    ns_uri="http://www.tinyows.org/"
    name="trad"
    title="Träd" />
</tinyows>

2 Answers 2

1

In your TinyOWS config you write online_resource="http://127.0.0.1/cgi-bin/tinyows" but in OpenLayers you use another host name - http://localhost/cgi-bin/tinyows. This mismatch causes an error.

10
  • tried that - made no difference.
    – user10895
    Commented Mar 11, 2013 at 6:52
  • Try to move schema option from WFS protocol config.
    – drnextgis
    Commented Mar 11, 2013 at 8:08
  • Ok, can you clarify - are you talking about the tinyows config file or the javascript?
    – user10895
    Commented Mar 11, 2013 at 8:41
  • OpenLayers javascript
    – drnextgis
    Commented Mar 11, 2013 at 11:07
  • Ok, thanks, do you mean REMOVE or change the schema? If change, what to?
    – user10895
    Commented Mar 11, 2013 at 11:44
0

Oops - turns out I had the wrong schema_dir in tinyows.xml. I changed /usr/local/tinyows/schema/ to /usr/share/tinyows/schema and now it's loading fine. Maybe someone could update the config file example on http://mapserver.org/tinyows/configfile.html ?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.