SERVICE=WMS&REQUEST=GetCapabilities

WFS supports several kinds of requests:
- GetCapabilities describes what sevices and data the WFS procides
- DescribeFeatureType produces an XML Schema defining the attributes being 
published
- GetFeatures is used when requesting XML content (that is valid against the 
schema from DescribeFeatureType)

Usually the DescribeFeatureType makes use of the Geographic Markup Language 
ideas for Geometry etc...; in that respect the XML content reuturned by 
GetFeatures is considered to be "GML".

Jody

On 05/03/2010, at 1:24 PM, Ryan Ripken wrote:

> I'm trying to use Geotools 2.5.5 and the WFSExample.java example file to 
> connect to a public WFS server and download a polygon shape file.
> 
> When I get to "Step 5" I get a ServiceException about the "Request" 
> parameter missing.
> 
> Is there something I need to do to add a Request parameter to my query?
> I've gone through the first couple pages of Google results and I found 
> some reports that MapServer required "Service=wfs" added to the url.
> http://trac.osgeo.org/mapserver/ticket/1262
> http://lists.osgeo.org/pipermail/mapserver-users/2007-November/026301.html
> 
> Is that my problem?
> 
> This page includes an example wfs link on the server I'd like to use, 
> http://sdmdataaccess.nrcs.usda.gov/WebServiceHelp.aspx .  The example 
> link seems to work and includes SERVICE=WFS in the getFeature request.
> 
> So, assuming this is the problem, Is there something easy I might do in 
> the Geotools client code to work around it?
> Perhaps an api I could use to modify the url being generated before the 
> request is executed?  Or a way to add additional parameters to the 
> request?  Or perhaps a class I could extend and a method to override 
> where I could recognize the hostname and add the parameter?
> 
> I stepped into the WFS feature code with the debugger but it isn't 
> immediately obvious to me where things are going wrong or where I might 
> be able to modify the requests.  Appreciate any feedback - even if it is 
> just "yeah, thats your problem"
> 
> Thanks,
> Ryan
> 
> Here is the output of my program.
> **** Step 1: Connection Parameters
> **** Step 2: Connection
> **** Step 3: Discovery
>  title:NRCS Soil Data Mart Data Access Web Feature Service WGS84
>  typeNames[0]=MapunitPoly
>  typeNames[1]=MapunitPolyNoGeometry
>  typeNames[2]=MapunitLine
>  typeNames[3]=MapunitPoint
>  typeNames[4]=MapunitPolyExtended
>  typeNames[5]=SurveyAreaPoly
>  using:MapunitPoly
>  Schema Attributes:8
>  attributeDescriptor[0]=multiPolygon
>  attributeDescriptor[1]=AREASYMBOL
>  attributeDescriptor[2]=SPATIALVERSION
>  attributeDescriptor[3]=MUSYM
>  attributeDescriptor[4]=MUKEY
>  attributeDescriptor[5]=SHAPE
>  attributeDescriptor[6]=OBJECTID
>  attributeDescriptor[7]=OBJECTID
> **** Step 4: target:MapunitPoly
>  FeatureSource Bounds:ReferencedEnvelope[18.0 : 72.0, -178.5 : -66.0]
> **** Step 5: Query
>  GeometryDescriptor LocalName: multiPolygon
>  Built filter:[ multiPolygon intersects POLYGON ((-121.618652 
> 38.231708, -121.313782 38.231708, -121.313782 38.440682, -121.618652 
> 38.440682, -121.618652 38.231708)) ]
> Mar 4, 2010 5:32:07 PM org.geotools.xml.XMLSAXHandler processException
> SEVERE: Incomplete WFS request: 'Request' parameter missing.    
> org.geotools.xml.filter.FilterComplexTypes$ServiceExceptionType.getValue(FilterComplexTypes.java:1669)
> 
> org.geotools.xml.handlers.ComplexElementHandler.endElement(ComplexElementHandler.java:157)
>     org.geotools.xml.XMLSAXHandler.endElement(XMLSAXHandler.java:266)
>     org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> 
> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown 
> Source)
> 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
>  
> Source)
> 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> Source)
>     org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>     org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>     org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>     org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>     org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown 
> Source)
>     javax.xml.parsers.SAXParser.parse(Unknown Source)
>     javax.xml.parsers.SAXParser.parse(Unknown Source)
>     org.geotools.xml.DocumentFactory.getInstance(DocumentFactory.java:140)
> 
> org.geotools.data.wfs.v1_0_0.WFSFeatureReader.run(WFSFeatureReader.java:125)
> 
> Mar 4, 2010 5:32:07 PM org.geotools.xml.XMLSAXHandler endElement
> WARNING: Incomplete WFS request: 'Request' parameter missing.
> Mar 4, 2010 5:32:07 PM org.geotools.xml.XMLSAXHandler endElement
> WARNING: Line 4 Col 72
> Mar 4, 2010 5:32:07 PM org.geotools.data.wfs.v1_0_0.NonStrictWFSStrategy 
> createFeatureReaderPOST
> WARNING: java.io.IOException: org.geotools.ows.ServiceException: 
> Incomplete WFS request: 'Request' parameter missing.
> Mar 4, 2010 5:32:07 PM org.geotools.xml.XMLSAXHandler processException
> SEVERE: Invalid request.  Unable to determine spatial filter. (Unknown, 
> Unknown, Unknown).    
> org.geotools.xml.filter.FilterComplexTypes$ServiceExceptionType.getValue(FilterComplexTypes.java:1669)
> 
> org.geotools.xml.handlers.ComplexElementHandler.endElement(ComplexElementHandler.java:157)
>     org.geotools.xml.XMLSAXHandler.endElement(XMLSAXHandler.java:266)
>     org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> 
> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown 
> Source)
> 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
>  
> Source)
> 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> Source)
>     org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>     org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>     org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>     org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>     org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown 
> Source)
>     javax.xml.parsers.SAXParser.parse(Unknown Source)
>     javax.xml.parsers.SAXParser.parse(Unknown Source)
>     org.geotools.xml.DocumentFactory.getInstance(DocumentFactory.java:140)
> 
> org.geotools.data.wfs.v1_0_0.WFSFeatureReader.run(WFSFeatureReader.java:125)
> 
> Mar 4, 2010 5:32:07 PM org.geotools.xml.XMLSAXHandler endElement
> WARNING: Invalid request.  Unable to determine spatial filter. (Unknown, 
> Unknown, Unknown).
> Mar 4, 2010 5:32:07 PM org.geotools.xml.XMLSAXHandler endElement
> WARNING: Line 4 Col 103
> Mar 4, 2010 5:32:07 PM org.geotools.data.wfs.v1_0_0.NonStrictWFSStrategy 
> createFeatureReaderGET
> WARNING: java.io.IOException: org.geotools.ows.ServiceException: Invalid 
> request.  Unable to determine spatial filter. (Unknown, Unknown, Unknown).
> java.util.NoSuchElementException: Could not aquire 
> feature:java.io.IOException: org.geotools.ows.ServiceException: Invalid 
> request.  Unable to determine spatial filter. (Unknown, Unknown, Unknown).
>     at 
> org.geotools.data.store.NoContentIterator.next(NoContentIterator.java:56)
>     at 
> org.geotools.data.store.NoContentIterator.next(NoContentIterator.java:41)
>     at hec.dgt.plugins.WFSExample.dataAccess(WFSExample.java:125)
>     at hec.dgt.plugins.WFSExample.main(WFSExample.java:52)
> Caused by: java.io.IOException: org.geotools.ows.ServiceException: 
> Invalid request.  Unable to determine spatial filter. (Unknown, Unknown, 
> Unknown).
>     at org.geotools.xml.gml.FCBuffer.hasNext(FCBuffer.java:326)
>     at 
> org.geotools.data.wfs.v1_0_0.WFSFeatureReader.loadElement(WFSFeatureReader.java:189)
>     at 
> org.geotools.data.wfs.v1_0_0.WFSFeatureReader.hasNext(WFSFeatureReader.java:178)
>     at 
> org.geotools.data.ReTypeFeatureReader.hasNext(ReTypeFeatureReader.java:190)
>     at 
> org.geotools.data.wfs.v1_0_0.NonStrictWFSStrategy.createFeatureReaderGET(NonStrictWFSStrategy.java:134)
>     at 
> org.geotools.data.wfs.v1_0_0.NonStrictWFSStrategy.createFeatureReader(NonStrictWFSStrategy.java:101)
>     at 
> org.geotools.data.wfs.v1_0_0.StrictWFSStrategy.access$101(StrictWFSStrategy.java:60)
>     at 
> org.geotools.data.wfs.v1_0_0.StrictWFSStrategy$StrictFeatureReader.nextReader(StrictWFSStrategy.java:222)
>     at 
> org.geotools.data.wfs.v1_0_0.StrictWFSStrategy$StrictFeatureReader.init(StrictWFSStrategy.java:171)
>     at 
> org.geotools.data.wfs.v1_0_0.StrictWFSStrategy$StrictFeatureReader.<init>(StrictWFSStrategy.java:145)
>     at 
> org.geotools.data.wfs.v1_0_0.StrictWFSStrategy.createFeatureReader(StrictWFSStrategy.java:84)
>     at 
> org.geotools.data.wfs.v1_0_0.NonStrictWFSStrategy.getFeatureReader(NonStrictWFSStrategy.java:72)
>     at 
> org.geotools.data.wfs.v1_0_0.WFS_1_0_0_DataStore.getFeatureReader(WFS_1_0_0_DataStore.java:740)
>     at 
> org.geotools.data.DefaultFeatureResults.reader(DefaultFeatureResults.java:210)
>     at 
> org.geotools.data.store.DataFeatureCollection.openIterator(DataFeatureCollection.java:229)
>     at 
> org.geotools.data.store.DataFeatureCollection.iterator(DataFeatureCollection.java:199)
>     at hec.dgt.plugins.WFSExample.dataAccess(WFSExample.java:122)
>     ... 1 more
> Caused by: org.geotools.ows.ServiceException: Invalid request.  Unable 
> to determine spatial filter. (Unknown, Unknown, Unknown).
>     at org.geotools.xml.XMLSAXHandler.endElement(XMLSAXHandler.java:274)
>     at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
> Source)
>     at 
> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown 
> Source)
>     at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
>  
> Source)
>     at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> Source)
>     at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>     at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>     at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>     at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>     at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown 
> Source)
>     at javax.xml.parsers.SAXParser.parse(Unknown Source)
>     at javax.xml.parsers.SAXParser.parse(Unknown Source)
>     at 
> org.geotools.xml.DocumentFactory.getInstance(DocumentFactory.java:140)
>     at 
> org.geotools.data.wfs.v1_0_0.WFSFeatureReader.run(WFSFeatureReader.java:125)
> Caused by: org.geotools.ows.ServiceException: Invalid request.  Unable 
> to determine spatial filter. (Unknown, Unknown, Unknown).
>     at 
> org.geotools.xml.filter.FilterComplexTypes$ServiceExceptionType.getValue(FilterComplexTypes.java:1669)
>     at 
> org.geotools.xml.handlers.ComplexElementHandler.endElement(ComplexElementHandler.java:157)
>     at org.geotools.xml.XMLSAXHandler.endElement(XMLSAXHandler.java:266)
>     ... 13 more
> 
> 
> 
> 
> 
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> Geotools-gt2-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to