[mapserver-users] tinyows

aho forum.email.a at googlemail.com
Tue Nov 13 01:11:40 PST 2012


Hi Alexandre,

ok, I changed to '<wfs:...', removed the Filter and got this in my -O 
test.txt file:

<?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 isn't valid</ows:ExceptionText>
  </ows:Exception>
</ows:ExceptionReport>

This is always the same actually.

This was the result and the adjusted wget command:

C:\Users\Anna>wget "http://localhost/cgi-bin/tinyows.exe 
--post-data='<wfs:GetFe
ature xmlns:wfs="http://www.opengis.net/wfs" service="WFS" 
version="1.1.0" xsi:s
chemaLocation="http://www.opengis.net/wfs 
http://schemas.opengis.net/wfs/1.1.0/w
fs.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><wfs:Query 
typeNam
e="feature:frida" srsName="EPSG:31467" 
xmlns:feature="http://127.0.0.1/"></wfs:Q
uery></wfs:GetFeature>' --header="Content-Type: application/xml; 
charset=UTF-8"
-O C:\test.txt

SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = C:\OSGeo4W\GnuWin32/etc/wgetrc
--2012-11-13 10:07:35-- 
http://localhost/cgi-bin/tinyows.exe%20--post-data='%3C
wfs:GetFeature%20xmlns:wfs=http://www.opengis.net/wfs%20service=WFS%20version=1.
1.0%20xsi:schemaLocation=http://www.opengis.net/wfs
Resolving localhost... 127.0.0.1, ::1
Connecting to localhost|127.0.0.1|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2012-11-13 10:07:35 ERROR 404: Not Found.

--2012-11-13 10:07:35-- 
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd%20xmlns:xs
i=http://www.w3.org/2001/XMLSchema-instance%3E%3Cwfs:Query%20typeName=feature:fr
ida%20srsName=EPSG:31467%20xmlns:feature=http://127.0.0.1/%3E%3C/wfs:Query%3E%3C
/wfs:GetFeature%3E'%20--header=Content-Type:
Resolving schemas.opengis.net... 66.244.86.52
Connecting to schemas.opengis.net|66.244.86.52|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2012-11-13 10:07:35 ERROR 404: Not Found.

--2012-11-13 10:07:35--  http://application/xml;
Resolving application... failed: No data record of requested type.
wget: unable to resolve host address `application'
--2012-11-13 10:07:38--  ftp://charset=utf-8%20-o%20c/%5Ctest.txt
            => `%5Ctest.txt'
Resolving charset=utf-8 -o c... failed: No data record of requested type.
wget: unable to resolve host address `charset=utf-8 -o c'

Something is wrong with the host - maybe there is something missing in 
the tinyows configuration. Because now wget takes the application as the 
address instead of the coordinates of the bounding box!?
I took the same ns_prefix: feature because its also defined like that in 
my xml -- I changed it, because i read that recommendation somewhere - 
made no difference.




Am 11/12/2012 5:05 PM, schrieb Alexandre Dubé:
> Anna,
>
>   What does your C:\ms4w\Apache\logs\tinows.log file contain ?
>
>   Also yeah you should use --post-data='<wfs:GetFeature...' and not 
> --post-data="<wfs:GetFeature...".  If your dataset isn't too big, you 
> could remove the <ogc:Filter> node.  Also, try replacing 
> xmlns:feature="http://127.0.0.1/" by xmlns:tows="http://127.0.0.1/".
>
> HTH,
>
> Alexandre
>
>
> On 12-11-12 10:31 AM, aho wrote:
>> Hi Alexandre,
>>
>> I already reinstalled pyhton and made the configuration of the apache 
>> server again. At least one thing I can exclude - specially because 
>> sooner or later I have to include it in another project which needs 
>> to run on a certain port. Anyhow... I also installed the wget and you 
>> are right, it helps a lot.
>> I took the GetFeature xml from chrome and constructed the following 
>> line:
>>
>> wget "http://localhost/cgi-bin/tinyows.exe" --post-data="<wfs:GetF
>> eature xmlns:wfs="http://www.opengis.net/wfs" service="WFS" 
>> version="1.0.0" outp
>> utFormat="application/json" 
>> xsi:schemaLocation="http://schemas.opengis.net/wfs/1
>> .0.0/WFS-transaction.xsd" 
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>> <wfs:Query typeName="feature:frida" 
>> xmlns:feature="http://127.0.0.1/"><ogc:Filte
>> r 
>> xmlns:ogc="http://www.opengis.net/ogc"><ogc:BBOX><ogc:PropertyName>the_geom</o
>> gc:PropertyName><gml:Box xmlns:gml="http://www.opengis.net/gml" 
>> srsName="EPSG:31
>> 467"><gml:coordinates decimal="." cs="," ts=" ">3413084,5782000 
>> 3457916,5806000<
>> /gml:coordinates></gml:Box></ogc:BBOX></ogc:Filter></wfs:Query></wfs:GetFeature> 
>>
>> " --header="Content-Type: application/xml; charset=UTF-8" -O C:/test.txt
>>
>> wget returned:
>>
>> SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
>> syswgetrc = C:\OSGeo4W\GnuWin32/etc/wgetrc
>> --2012-11-12 16:17:16--  http://localhost/cgi-bin/tinyows.exe
>> Resolving localhost... 127.0.0.1, ::1
>> Connecting to localhost|127.0.0.1|:80... connected.
>> HTTP request sent, awaiting response... 200 OK
>> Length: unspecified [application/xml]
>> Saving to: `C:/test.txt'
>>     [ <=>                                   ] 503 --.-K/s in 0s
>>
>> 2012-11-12 16:17:16 (11.4 MB/s) - `C:/test.txt' saved [503]
>> --2012-11-12 16:17:16-- 
>> http://%3E3413084,5782000%203457916,5806000%3C/gml:coor
>> dinates%3E%3C/gml:Box%3E%3C/ogc:BBOX%3E%3C/ogc:Filter%3E%3C/wfs:Query%3E%3C/wfs: 
>>
>> GetFeature%3E
>> Resolving >3413084,5782000 3457916,5806000<... failed: No data record 
>> of request
>> ed type.
>> wget: unable to resolve host address `>3413084,5782000 3457916,5806000<'
>> FINISHED --2012-11-12 16:17:17--
>> Downloaded: 1 files, 503 in 0s (11.4 MB/s)
>>
>>
>> I have really no idea why it is using the coordinates of the bounding 
>> box for the host?! I thought it would be a problem of wget and the 
>> quotation marks... but changing that to ' did not solve the problem.
>> In my test.txt is still the same response: invalid xml. Nothing else 
>> unfortunately. I think its a problem in my openlayers configuration - 
>> I check the spatial reference again; maybe I can also set the bbox or 
>> something. I will see...
>>
>> If you or anyone else has an idea I will be very happy!
>> Anna
>>
>> Am 11/12/2012 2:42 PM, schrieb Alexandre Dubé:
>>> Hi Anna,
>>>
>>>   While working locally, you don't need to set an 
>>> OpenLayers.ProxyHost.  Put comments // in front of it for now.
>>>
>>>   tinyows-1.0.0-weather-sites.fcgi -> copy your tinyows.exe file 
>>> giving it the name you want.  In Linux, you could use a symbolic 
>>> link, like I did.  Here's the apache config for it. It does 2 things 
>>> : it enables FastCgi and set the TINYOWS_CONFIG_FILE env variable 
>>> for this link to use a specific .xml config file.
>>>
>>> ###
>>> FastCgiServer /usr/lib/cgi-bin/tinyows-1.0.0-weather-sites.fcgi 
>>> -initial-env 
>>> TINYOWS_CONFIG_FILE=/opt/labs/weather-sites/etc/tinyows/config.xml
>>> ScriptAlias "/weather-sites-tinyows-1.0.0.fcgi" 
>>> "/usr/lib/cgi-bin/tinyows-1.0.0-weather-sites.fcgi"
>>> ###
>>>
>>> Once you start using wget, the idea is to edit the xml GetFeature 
>>> request sent and/or the config.xml file as you try it to quickly see 
>>> what causes things to not work.  Point to tinyows for now, you your 
>>> proxy (yet), i.e. make your tinyows work first.
>>>
>>> Best regards,
>>>
>>> Alexandre
>>>
>>>
>>> On 12-11-12 04:05 AM, aho wrote:
>>>> Hi Alexandre,
>>>>
>>>> thanks for the good hints! This is really great! I think its not my 
>>>> tinyows.xml or the Openlayers... but the error message tells 
>>>> something else somehow... :(...  I changed it to the following:
>>>> xml configuration of tinyows:
>>>>
>>>> <tinyows online_resource="http://127.0.0.1/cgi-bin/tinyows.exe"
>>>>        schema_dir="C:\ms4w\apps\tinyows\schema\"
>>>>        log="C:\ms4w\Apache\logs\tinows.log" log_level="15">
>>>> <pg host="127.0.0.1" user="postgres" password="postgres" 
>>>> dbname="tinyows" port="5432"/>
>>>> <metadata name="TinyOWS Server"
>>>>           title="TinyOWS Server - WFS-T Frida Service" />
>>>> <contact name="TinyOWS Server"
>>>>          site="http://www.tinyows.org/"
>>>>          email="tinyows-users at lists.maptools.org" />
>>>> <layer retrievable="1"
>>>>         writable="1"
>>>>        ns_prefix="tows"
>>>>        ns_uri="http://127.0.0.1/"
>>>>        name="frida"
>>>>        title="Frida Parks" />
>>>> </tinyows>
>>>>
>>>> and the OpenLayers code:
>>>>
>>>>   map = new OpenLayers.Map('map', {
>>>>       projection: new OpenLayers.Projection("EPSG:31467"),
>>>>       units: "m",
>>>>       maxResolution: "auto",
>>>>       maxExtent: new 
>>>> OpenLayers.Bounds(3427000,5788000,3444000,5800000),
>>>>       controls: [
>>>>           new OpenLayers.Control.PanZoom()
>>>>       ]
>>>>   });
>>>>   var osm = new OpenLayers.Layer.WMS(
>>>>       "OSM by Omniscale WMS",
>>>>       "http://osm.omniscale.net/proxy/service",
>>>>       {layers: 'osm', format: 'image/jpeg'},
>>>>       {projection:"EPSG:31467",  units: "m", maxResolution: "auto", 
>>>> maxExtent: new OpenLayers.Bounds(3427000,5788000,3444000,5800000)}
>>>>   );
>>>>   var saveStrategy = new OpenLayers.Strategy.Save();
>>>>   saveStrategy.events.register("success", '', showSuccessMsg);
>>>>   saveStrategy.events.register("fail", '', showFailureMsg);
>>>>   var wfs = new OpenLayers.Layer.Vector("Editable Features", {
>>>>       strategies: [new OpenLayers.Strategy.BBOX(), saveStrategy],
>>>>       projection: new OpenLayers.Projection("EPSG:31467"),
>>>>       protocol: new OpenLayers.Protocol.WFS({
>>>>             version:"1.1.0",
>>>>           url: "http://127.0.0.1/cgi-bin/tinyows.exe",
>>>>           featureType: "frida",
>>>>           outputformat:"application/json",
>>>>           readFormat: new OpenLayers.Format.GeoJSON(),
>>>>           featureNS: "http://127.0.0.1/",
>>>>           geometryName: "the_geom"
>>>>       })
>>>> });
>>>>   map.addLayers([osm, wfs]);
>>>>
>>>>   map.zoomToMaxExtent();
>>>>
>>>> The layer is actually in  31467 - I want to get it working for the 
>>>> frida parks example. I reduced everything else in my javascript file.
>>>>
>>>> But I think I have a problem with my configuration. I am setting 
>>>> the following in OpenLayers: OpenLayers.ProxyHost = 
>>>> "/cgi-bin/proxy.cgi?url="; and I saw that you were actually 
>>>> refering to a fcgi file in your config.xml. I thought I could 
>>>> define there the path to the tinyows.exe like this: 
>>>> http://127.0.0.1/cgi-bin/tinyows.exe - do I also give the proxy there?
>>>> Could you send me the content of your 
>>>> weather-sites-tinyows-1.0.0.fcgi file? I have to say that I can´t 
>>>> follow your instructions for setting the environment variable - I 
>>>> made that via the control Panel :) - and the ScriptAlias.
>>>>
>>>> I have to install the wget first on windows, but thanks for that 
>>>> hint - I will try it after the restart now!
>>>>
>>>> Thanks in advance,
>>>> Anna
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Am 11/9/2012 2:50 PM, schrieb Alexandre Dubé:
>>>>> ### The apache config used to bind TinyOWS to this config using a 
>>>>> different url
>>>>> FastCgiServer /usr/lib/cgi-bin/tinyows-1.0.0-weather-sites.fcgi 
>>>>> -initial-env 
>>>>> TINYOWS_CONFIG_FILE=/opt/labs/weather-sites/etc/tinyows/config.xml
>>>>> ScriptAlias "/weather-sites-tinyows-1.0.0.fcgi" 
>>>>> "/usr/lib/cgi-bin/tinyows-1.0.0-weather-sites.fcgi" 
>>>>
>>>
>>>
>>
>
>



More information about the mapserver-users mailing list