1

I'm simply trying to call a WPS process as shown on the following page: http://suite.opengeo.org/docs/processing/wpsclient/index.html

The JTS:splitPolygon example they give works just fine for me, but if I try any other process I get nothing but errors. For example:

var myline = OpenLayers.Geometry.fromWKT('LINESTRING(117 22,112 18,118 13, 115 8)');
client.execute({
    server: "local",
    process: "JTS:isSimple",
    inputs: {
        geom: myline
    },
    success: function (outputs) {
        console.log(outputs);
    }
});

This throws an "Uncaught TypeError: Cannot read property 'supported' of undefined" error. What am I missing?

1
  • I have a rather similar problem. It seems there is a problem with OpenLayers.WPSClient. It is not possible to return simple type (like boolean, string or double). Could somebody please post working example, using WPS with OpenLayers and the Client SDK, where return value is simple data type. tnx. Feb 28, 2014 at 13:22

1 Answer 1

1

There is a couple of things you can check here. First make sure that your Geoserver WPS supports the JTS:isSimple process. You can do this by using something similar to the following in the address line of your browser. Make sure to change the url to point to the location of your geoserver installation :

http://localhost:8095/geoserver/ows?service=WPS&version=1.0.0&request=DescribeProcess&identifier=JTS:isSimple

If that returns a whole bunch of information on the process lets move on. Next you want to make sure you have set up your client object correctly. Check to make sure somewhere in your code before your "client.execute" call you have something like this :

var client = new OpenLayers.WPSClient({
    servers: {
        local: '/geoserver/wps'
    }
});

Change the local var to point to the location on the local webserver where your geoserver instance is installed. If it isn't on the local server please ensure you include the whole web address. Note that the tutorial has "wpsClient" whereas in the code you have shown you have used just "client". Make sure you have used the same name in both the declaration and the call.

If it still doesn't work I would suggest using firebug if using firefox or the developer console if using Internet explorer to see what is being sent and received from the browser and any error messages included. If you need more help it would be useful to have the entire code to look at as it is very possible the error is being caused elsewhere.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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