我使用"org.eclipse.paho.client.mqttv3“来连接我的java代码到azure IOT,但同时却引发了连接MQTT异常。
步骤:
1)创建MQTT客户端。
2)创建SSL工厂。
3)最终连接到Azure IOT。
但是,当connect异常被抛出时:
Inside AzureCommunicator::connect, Could not connect due to an MqttException!
MqttException (0) - java.lang.ClassCastException: class java.net.Socket cannot be cast to class javax.net.ssl.SSLSocket (java.net.Socket and javax.net.ssl.SSLSocket are in module java.base of loader 'bootstrap')
at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:38)
at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:736)
at java.base/java.lang.Thread.run(Thread.java:835)
Caused by: java.lang.ClassCastException: class java.net.Socket cannot be cast to class javax.net.ssl.SSLSocket (java.net.Socket and javax.net.ssl.SSLSocket are in module java.base of loader 'bootstrap')
at org.eclipse.paho.client.mqttv3.internal.SSLNetworkModule.start(SSLNetworkModule.java:141)
at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:722)
... 1 more
代码片段:
// Connect our client.
System.out.println("Inside AzureCommunicator::connect, Trying to connect...");
try
{
//client.connect(options);
client.connect(options).waitForCompletion();
}
catch (MqttException e1)
{
System.out.println("Inside AzureCommunicator::connect, Could not connect due to an MqttException!\n");
e1.printStackTrace();
return false;
}
发布于 2019-05-12 06:14:49
调试后我发现,Paho MQTT需要更新才能接受自定义套接字类型。
https://stackoverflow.com/questions/56065856
复制相似问题