[Geoserver-devel] wps client testing with geoserver

I am collecting test results on this page:

Thus far I can make it through capabilities and am stuck on describe process … the client code is generating the wrong URL:

GENERATED: [http://localhost:8080/geoserver/?REQUEST=DescribeProcess&IDENTIFIER=gt:buffer](http://localhost:8080/geoserver/?REQUEST=DescribeProcess&IDENTIFIER=gt:buffer)..
CORRECTED: [http://localhost:8080/ows?geoserver/?REQUEST=DescribeProcess&IDENTIFIER=gt:buffer](http://localhost:8080/ows?geoserver/?REQUEST=DescribeProcess&IDENTIFIER=gt:buffer)..

I checked the returned capabilities document - and that is indeed incorrect:

<ows:Operation name=“DescribeProcess”>
ows:DCP
ows:HTTP
<ows:Get
xlink:href=“http://localhost:8080/geoserver/?service=wps&request=DescribeProcess&” />
<ows:Post xlink:href=“http://localhost:8080/geoserver/” />
</ows:HTTP>
</ows:DCP>
</ows:Operation>

Even with the correct URL I am getting a stack trace from GeoServer:

org.geoserver.wps.WPSException: Could not find process parameter for type LAYERS,class java.util.ArrayList
at org.geoserver.wps.DescribeProcess.dataInputs(DescribeProcess.java:126)
at org.geoserver.wps.DescribeProcess.processDescription(DescribeProcess.java:101)
at org.geoserver.wps.DescribeProcess.run(DescribeProcess.java:77)
at org.geoserver.wps.DefaultWebProcessingService.describeProcess(DefaultWebProcessingService.java:62)

On the plus side some good news for the geotools-devel list:

  • I have restored the unsupported/wps module test cases
  • there is a test fixture to check against a local geoserver if you have it
  • I am building up a stable of sample xml documents to parse against

Jody

Jody Garnett ha scritto:

I am collecting test results on this page:
- http://udig.refractions.net/confluence/display/COM/WPS+Testing#WPSTesting-GeoServer

Thus far I can make it through capabilities and am stuck on describe process ... the client code is generating the wrong URL:

GENERATED: http://localhost:8080/geoserver/?REQUEST=DescribeProcess&IDENTIFIER=gt:buffer
CORRECTED: http://localhost:8080/ows?geoserver/?REQUEST=DescribeProcess&IDENTIFIER=gt:buffer

I checked the returned capabilities document - and that is indeed incorrect:

  <ows:Operation name="DescribeProcess">
   <ows:DCP>
    <ows:HTTP>
     <ows:Get
      xlink:href="http://localhost:8080/geoserver/?service=wps&amp;request=DescribeProcess&amp;&quot; />
     <ows:Post xlink:href="http://localhost:8080/geoserver/&quot; />
    </ows:HTTP>
   </ows:DCP>
  </ows:Operation>

Ah ha, I'll fix that.

Even with the correct URL I am getting a stack trace from GeoServer:

org.geoserver.wps.WPSException: Could not find process parameter for type LAYERS,class java.util.ArrayList
at org.geoserver.wps.DescribeProcess.dataInputs(DescribeProcess.java:126)
at org.geoserver.wps.DescribeProcess.processDescription(DescribeProcess.java:101)
at org.geoserver.wps.DescribeProcess.run(DescribeProcess.java:77)
at org.geoserver.wps.DefaultWebProcessingService.describeProcess(DefaultWebProcessingService.java:62)

That I guess is the Sextante mapcalc equivalent? (raster algebra over
multiple layers?).

At this stage of development GeoServer can bind only processes following
certain input/output types and certain rules, one of them is that
explicit collections are not allowed, since there's no way to know what's inside them, and a parameter with
a binding of the type of the contents of the collection, and multiplicity > 1 (or -1 to specify no limit) should be used instead.

So it describe and execute should work for some processes, but not all of them.
I guess I should filter the processes we cannot properly bind out of the
capabilities

On the plus side some good news for the geotools-devel list:
- I have restored the unsupported/wps module test cases
- there is a test fixture to check against a local geoserver if you have it
- I am building up a stable of sample xml documents to parse against

Nice

Cheers
Andrea

--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.