in docker_images/java/wrapper/src/main/java/glue/ServiceGlue.java [62:107]
private void invokeMethodCommon(String connectionId, String deviceId, String moduleId, MethodInvoke methodInvokeParameters, Handler<AsyncResult<Object>> handler)
{
System.out.printf("invoking method on %s with deviceId = %s moduleId = %s%n", connectionId, deviceId, moduleId);
System.out.println(methodInvokeParameters);
DirectMethodsClient client = getClient(connectionId);
if (client == null)
{
handler.handle(Future.failedFuture(new MainApiException(500, "invalid connection id")));
}
else
{
String methodName = methodInvokeParameters.getMethodName();
Object payload = methodInvokeParameters.getPayload();
System.out.println("The payload type is: " + payload.getClass());
DirectMethodRequestOptions requestOptions =
DirectMethodRequestOptions.builder()
.methodResponseTimeoutSeconds(methodInvokeParameters.getResponseTimeoutInSeconds())
.methodConnectTimeoutSeconds(methodInvokeParameters.getConnectTimeoutInSeconds())
.payload(payload)
.build();
DirectMethodResponse result = null;
System.out.printf("invoking%n");
try
{
if (moduleId == null)
{
result = client.invoke(deviceId, methodName, requestOptions);
}
else
{
result = client.invoke(deviceId, moduleId, methodName, requestOptions);
}
}
catch (Exception e)
{
handler.handle(Future.failedFuture(e));
}
System.out.printf("invoke returned%n");
System.out.println(result);
handler.handle(Future.succeededFuture(makeMethodResultThatEncodesCorrectly(result)));
}
}