Я вызываю этот код внутри службы отдыха (внедрить на сервере Spring Boot.) Первый вызов выполняется ОК. (клиент был правильно инициализирован и правильно получает состояние тени устройства) Когда я запускаю ту же службу во второй раз - код device.get()
просто висит и навсегда приостанавливает поток.
I ' m работает с
com.amazon aws: aws -iot-device-sdk- java: 1.3.6
org.eclipse.paho: org.eclipse.paho .client.mqttv3: 1.2.2
Это мой код:
AWSIotMqttClient awsIotClient = awsIotService.initClient();
AWSIotDevice device = new AWSIotDevice(deviceName);
try {
awsIotClient.attach(device);
if(awsIotClient.getConnectionStatus()== AWSIotConnectionStatus.DISCONNECTED) {
awsIotClient.connect(5000,true);
}
// Retrieve updated document from the shadow
String shadowState = device.get(); // =>Suspended
Вот мой код подключения клиента: (который успешно подключен)
KeyStorePasswordPair pair = getKeyStorePasswordPair(certificateFile, privateKeyFile);
awsIotClient = new AWSIotMqttClient(clientEndpoint, clientId, pair.keyStore, pair.keyPassword);
awsIotClient.setKeepAliveInterval(60000);
awsIotClient.setNumOfClientThreads(5);
awsIotClient.setMaxConnectionRetries(5);
И кстати, то же самое происходит во втором звонке: device.update(jsonState)