Hi,
I am trying to send base64 encoded data to a WPS server using GeoTools
9.3. The input is marked as a ComplexInput by the WPS server, but the
GeoTools WPS API just ignores the content of the complex input and sends
an empty input.
The below code is a minimal example that shows the problem. To test is
just replace the url with the url of any available WPS server.
package doodle;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import net.opengis.wps10.DataType;
import net.opengis.wps10.ResponseDocumentType;
import org.eclipse.emf.ecore.EObject;
import org.geotools.data.ows.SimpleHttpClient;
import org.geotools.data.wps.WPSUtils;
import org.geotools.data.wps.WebProcessingService;
import org.geotools.data.wps.request.ExecuteProcessRequest;
public class TestWPSComplexInput {
public static void main(String[] args) throws Exception {
URL wpsServerUrl = new URL("http://example.com");
String processIdentifier = "dummy";
SimpleHttpClient hc = new SimpleHttpClient();
WebProcessingService wps = new WebProcessingService(wpsServerUrl,
hc,
null);
ExecuteProcessRequest execRequest = wps.createExecuteProcessRequest();
execRequest.setIdentifier(processIdentifier);
ResponseDocumentType rdt = wps.createResponseDocumentType(false,
true,
true,
"output");
execRequest.setResponseForm(wps.createResponseForm(rdt, null));
String inputValue ="some-base-64-data";
String mime = "application/protobuf";
int type = WPSUtils.INPUTTYPE_COMPLEXDATA;
DataType createdInput = WPSUtils.createInputDataType(inputValue,
type,
null,
mime);
createdInput.getComplexData().setEncoding("base64");
List<EObject> list = new ArrayList<>();
list.add(createdInput);
execRequest.addInput("complexInput1", list);
wps.issueRequest(execRequest);
}
}
This code will produce the following XML request to the WPS server. As
you can see content of the complex input is not included for some
reason. Does anyone know a fix for this problem?
<?xml version="1.0" encoding="UTF-8"?>
<wps:Execute service="WPS" version="1.0.0"
xmlns:wps="http://www.opengis.net/wps/1.0.0"
xmlns:ows="http://www.opengis.net/ows/1.1"
xmlns:xlink="http://www.w3.org/1999/xlink">
<ows:Identifier>dummy</ows:Identifier>
<wps:DataInputs>
<wps:Input>
<ows:Identifier>complexInput1</ows:Identifier>
<wps:Data>
<wps:ComplexData encoding="base64"
mimeType="application/protobuf"/>
</wps:Data>
</wps:Input>
</wps:DataInputs>
<wps:ResponseForm>
<wps:ResponseDocument lineage="false" status="true"
storeExecuteResponse="true">
<wps:Output asReference="false">
<ows:Identifier>testOutput</ows:Identifier>
</wps:Output>
</wps:ResponseDocument>
</wps:ResponseForm>
</wps:Execute>
Best regards,
Øystein Torget
Senior Engineer
Norwegian Meteorological Institute
PS: Sorry if this becomes a duplicate. I tried to send a message without
subscribing to the mailing list and it does not seem to have come
through so I am trying again.
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
GeoTools-GT2-Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users