用MQTTfx连接阿里云物联网平台,怎么一直MQTTException

我按官网格式配的设置,怎么就一直出MQTTException。 image.png 后面的用户名和密码也设置好了

2019-07-17 15:01:21,271  INFO --- BrokerConnectorController      : onConnect
2019-07-17 15:01:21,272  INFO --- ScriptsController              : Clear console.
2019-07-17 15:01:21,276  INFO --- MqttFX ClientModel             : MqttClient with ID 5CD6367ZYS|securemode=3,signmethod=hmacsha1,timestamp=10| assigned.
2019-07-17 15:01:21,294 ERROR --- MqttFX ClientModel             : Error when connecting
org.eclipse.paho.client.mqttv3.MqttException: MqttException
    at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:38) ~[org.eclipse.paho.client.mqttv3-1.2.0.jar:?]
    at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:715) ~[org.eclipse.paho.client.mqttv3-1.2.0.jar:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:?]
    at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source) ~[?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) ~[?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
    at java.lang.Thread.run(Unknown Source) [?:?]
Caused by: java.lang.IllegalArgumentException: hostname can't be null
    at java.net.InetSocketAddress.checkHost(Unknown Source) ~[?:?]
    at java.net.InetSocketAddress.<init>(Unknown Source) ~[?:?]
    at org.eclipse.paho.client.mqttv3.internal.TCPNetworkModule.start(TCPNetworkModule.java:76) ~[org.eclipse.paho.client.mqttv3-1.2.0.jar:?]
    at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:701) ~[org.eclipse.paho.client.mqttv3-1.2.0.jar:?]
    ... 7 more
2019-07-17 15:01:21,295 ERROR --- MqttFX ClientModel             : Please verify your Settings (e.g. Broker Address, Broker Port & Client ID) and the user credentials!
org.eclipse.paho.client.mqttv3.MqttException: MqttException
    at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:38) ~[org.eclipse.paho.client.mqttv3-1.2.0.jar:?]
    at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:715) ~[org.eclipse.paho.client.mqttv3-1.2.0.jar:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:?]
    at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source) ~[?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) ~[?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
    at java.lang.Thread.run(Unknown Source) [?:?]
Caused by: java.lang.IllegalArgumentException: hostname can't be null
    at java.net.InetSocketAddress.checkHost(Unknown Source) ~[?:?]
    at java.net.InetSocketAddress.<init>(Unknown Source) ~[?:?]
    at org.eclipse.paho.client.mqttv3.internal.TCPNetworkModule.start(TCPNetworkModule.java:76) ~[org.eclipse.paho.client.mqttv3-1.2.0.jar:?]
    at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:701) ~[org.eclipse.paho.client.mqttv3-1.2.0.jar:?]
    ... 7 more
2019-07-17 15:01:21,301  INFO --- ScriptsController              : Clear console.
2019-07-17 15:01:21,302 ERROR --- BrokerConnectService           : MqttException

遇到了同样的问题,在CSDN看到了,希望阿里云团队能够给出正确、标准的答案~请查看

展开
收起
刘刚_ 2020-05-23 21:06:31 3089 分享
分享
版权
举报
阿里云 AI 助理回答

从您提供的错误信息来看,问题出在尝试连接MQTT Broker时出现的java.lang.IllegalArgumentException: hostname can't be null异常。这表明您的客户端配置中可能没有正确设置Broker的主机名或IP地址。

请按照以下步骤检查和解决此问题:

  1. 检查Broker地址设置:确保在您的应用程序或MQTT客户端配置中,Broker的地址(hostname或IP)已经正确填写且非空。错误提示中的“Please verify your Settings (e.g. Broker Address, Broker Port)”也直接指向了这一问题。

  2. 端口确认:同时,请确认您配置的Broker端口号是否正确无误。虽然错误信息中没有直接指出端口问题,但错误配置端口也可能导致连接失败。

  3. 协议与安全设置:根据您提供的日志片段,似乎使用了特定的安全模式(securemode=3, signmethod=hmacsha1, timestamp=10),请确保这些安全设置与您的MQTT Broker配置相匹配。如果Broker没有启用相应的安全机制,或者配置不一致,也会导致连接失败。

  4. 网络连通性:确认客户端与Broker之间的网络是畅通的,可以尝试ping Broker的地址以检测网络可达性。

  5. 查看Broker日志:同时,查看MQTT Broker侧的日志,可能会提供更多关于为何连接被拒绝的信息。

  6. 软件版本兼容性:确认您的客户端库(如Eclipse Paho)版本与Broker版本之间是否存在已知的兼容性问题。有时,不同版本间的差异可能导致连接问题。

  7. 认证信息:再次确认用户名和密码是否正确无误地配置,并且Broker是否需要这些凭据进行身份验证。

如果以上所有方面都检查无误,但问题依旧存在,建议查阅您所使用的MQTT客户端库的官方文档或社区论坛,看是否有其他用户遇到过类似的问题及其解决方案。此外,也可以考虑升级到最新版本的客户端库,因为这可能已经修复了一些已知问题。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

物联网领域前沿技术分享与交流

热门讨论

热门文章

还有其他疑问?
咨询AI助理
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等