Hi,
I noticed that from version 2.22.0 of GeoServe, running the WPS process “gs:RepojectGeometry” with application/json input no longer works correctly while, for example, with version 2.18.2 everything worked correctly.
I tried with several recent versions, up to 2.23.1.
The Java version used in the latest versions is 11 as recommended by the minimum requirements of GeoServer (in version 2.18.2 I used version 8).
If I test the process with WKT input, everything works fine, while if I use application/json, I get the following error:
31 Oct 09:48:28 ERROR [wps.executor] - Process execution failed
org.geoserver.wps.WPSException: Failed to retrieve value for input geometry
at org.geoserver.wps.executor.LazyInputMap.parseInputs(LazyInputMap.java:98)
at org.geoserver.wps.executor.LazyInputMap.get(LazyInputMap.java:50)
at org.geotools.process.factory.AnnotationDrivenProcessFactory$InvokeMethodProcess.buildProcessArguments(AnnotationDrivenProcessFactory.java:748)
at org.geotools.process.factory.AnnotationDrivenProcessFactory$InvokeMethodProcess.execute(AnnotationDrivenProcessFactory.java:628)
at org.geoserver.wps.executor.ProcessStartupFilter$ProcessStartupWrapper.execute(ProcessStartupFilter.java:50)
at org.geoserver.wps.executor.DefaultProcessManager$ProcessCallable.call(DefaultProcessManager.java:222)
at org.geoserver.wps.executor.DefaultProcessManager$ProcessCallable.call(DefaultProcessManager.java:191)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.NullPointerException
at com.bedatadriven.jackson.datatype.jts.serialization.GeometryDeserializer.deserialize(GeometryDeserializer.java:45)
at com.bedatadriven.jackson.datatype.jts.serialization.GeometryDeserializer.deserialize(GeometryDeserializer.java:33)
at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)
at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:4650)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2831)
at org.geoserver.wps.ppio.GeoJSONPPIO$Geometries.decode(GeoJSONPPIO.java:134)
at org.geoserver.wps.ppio.CDataPPIO.decode(CDataPPIO.java:21)
at org.geoserver.wps.executor.SimpleInputProvider.getValueInternal(SimpleInputProvider.java:81)
at org.geoserver.wps.executor.AbstractInputProvider.getValue(AbstractInputProvider.java:103)
at org.geoserver.wps.executor.LazyInputMap.parseInputs(LazyInputMap.java:90)
The XML to test the functionality is as follows:
<?xml version="1.0" encoding="UTF-8"?><wps:Execute version=“1.0.0” service=“WPS” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns=“http://www.opengis.net/wps/1.0.0” xmlns:wfs=“http://www.opengis.net/wfs” xmlns:wps=“http://www.opengis.net/wps/1.0.0” xmlns:ows=“http://www.opengis.net/ows/1.1” xmlns:gml=“http://www.opengis.net/gml” xmlns:ogc=“http://www.opengis.net/ogc” xmlns:wcs=“http://www.opengis.net/wcs/1.1.1” xmlns:xlink=“http://www.w3.org/1999/xlink” xsi:schemaLocation=“http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd”>
ows:Identifiergs:ReprojectGeometry</ows:Identifier>
ows:Identifiergeometry</ows:Identifier>
<wps:ComplexData mimeType=“application/json”></wps:ComplexData>
</wps:Data>
</wps:Input>
ows:IdentifiersourceCRS</ows:Identifier>
wps:LiteralDataEPSG:3857</wps:LiteralData>
</wps:Data>
</wps:Input>
ows:IdentifiertargetCRS</ows:Identifier>
wps:LiteralDataEPSG:3003</wps:LiteralData>
</wps:Data>
</wps:Input>
</wps:DataInputs>
<wps:RawDataOutput mimeType=“application/json”>
ows:Identifierresult</ows:Identifier>
</wps:RawDataOutput>
</wps:ResponseForm>
</wps:Execute>
Daniele Maggiolo
Settore Tecnico
Via Roma, 5 – 36026, Pojana Maggiore (VI)
Tel. 0444 794127 – www.abitat.it
La presente e-mail ha carattere esclusivamente aziendale. Personale incaricato della ditta Abitat SIT srl potrà accedere al contenuto della e-mail e a eventuali risposte. Non è consentita la diffusione, distribuzione e copia della e-mail da parte di persona diversa dal destinatario. Non permettendo Internet di assicurare l’integrità del presente messaggio si declina ogni responsabilità nell’ipotesi in cui esso venga modificato. Se avete ricevuto questa e-mail per errore vi preghiamo di eliminarla e darne comunicazione al mittente. Grazie per la Vostra collaborazione.