// based on the describeprocess, setup the execute
ProcessDescriptionsType processDesc = descResponse.getProcessDesc();
ProcessDescriptionType pdt = (ProcessDescriptionType) processDesc.getProcessDescription().get(0);
WPSFactory wpsfactory = new WPSFactory(pdt, this.url);
Process process = wpsfactory.create();
// setup the inputs
Map<String, Object> map = new TreeMap<String, Object>();
WKTReader reader = new WKTReader(new GeometryFactory());
List<Geometry> list = new ArrayList<Geometry>();
Geometry geom1 = (Polygon) reader.read("POLYGON((20 10, 30 0, 40 10, 30 20, 20 10))");
Geometry geom2 = (Polygon) reader.read("POLYGON((20 30, 30 0, 20 20, 80 20, 20 30))");
Geometry geom3 = (Polygon) reader.read("POLYGON((177 10, 30 88, 40 70, 46 20, 177 10))");
Geometry geom4 = (Polygon) reader.read("POLYGON((5 10, 5 0, 13 10, 5 20, 5 10))");
list.add(geom1);
list.add(geom2);
list.add(geom3);
list.add(geom4);
map.put("geom", list);
// execute/send-request for the process
Map<String, Object> results = process.execute(map, null);
// check that the result is expected
assertNotNull(results);
// Geometry expected = geom1.union(geom2);