mqtt配置:
<context:property-placeholder
location="classpath:yimimqtt.properties" ignore-unresolvable="true" />
<!--MQTT配置 -->
<bean id="clientFactory"
class="org.springframework.integration.mqtt.core.DefaultMqttPahoClientFactory">
<property name="userName" value="${mqtt.username}" />
<property name="password" value="${mqtt.password}" />
<property name="cleanSession" value="${mqtt.cleanSession}" />
<property name="connectionTimeout" value="10" />
<property name="keepAliveInterval"
value="${mqtt.keepAliveInterval}" />
<property name="serverURIs">
<array>
<value>${mqtt.serverURI1}</value>
</array>
</property>
</bean>
<bean id="mqttHandler"
class="org.springframework.integration.mqtt.outbound.MqttPahoMessageHandler">
<constructor-arg name="clientId"
value="${mqtt.clientId}" />
<constructor-arg name="clientFactory"
ref="clientFactory" />
<property name="async" value="${mqtt.async}" />
<property name="defaultQos" value="${mqtt.defaultQos}" />
<property name="completionTimeout"
value="${mqtt.completionTimeout}" />
<!-- <property name ="connectionLost" ref="myConnectionLost"/> -->
</bean>
<!-- <bean id="myConnectionLost" ></bean> -->
<!-- 消息适配器 -->
<int-mqtt:message-driven-channel-adapter
id="mqttInbound" client-id="${mqtt.clientId}" url="${mqtt.serverURI1}"
topics="${mqtt.top.topic}" qos="${mqtt.defaultQos}"
client-factory="clientFactory" auto-startup="true"
send-timeout="${mqtt.completionTimeout}" channel="startCase" />
<int:channel id="startCase" />
<!-- 消息处理类 -->
<int:service-activator id="handlerService"
input-channel="startCase" ref="mqttCaseService" method="handleMessage" />
<!-- 消息处理 -->
<bean id="mqttCaseService"
class="com.common.communication.mqtt.service.impl.MqttServiceImpl" />
错误日志:
ERROR org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter - Error connecting or subscribing to [/sys/#]
org.eclipse.paho.client.mqttv3.MqttException: Client is connected
at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:27) ~[mqtt-client-0.4.0.jar:?]
at org.eclipse.paho.client.mqttv3.MqttAsyncClient.connect(MqttAsyncClient.java:452) ~[mqtt-client-0.4.0.jar:?]
at org.eclipse.paho.client.mqttv3.MqttAsyncClient.connect(MqttAsyncClient.java:442) ~[mqtt-client-0.4.0.jar:?]
at org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter.connectAndSubscribe(MqttPahoMessageDrivenChannelAdapter.java:194) [spring-integration-mqtt-4.1.0.RELEASE.jar:?]
at org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter.access$300(MqttPahoMessageDrivenChannelAdapter.java:41) [spring-integration-mqtt-4.1.0.RELEASE.jar:?]
at org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter$1.run(MqttPahoMessageDrivenChannelAdapter.java:237) [spring-integration-mqtt-4.1.0.RELEASE.jar:?]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) [spring-context-5.2.0.RELEASE.jar:5.2.0.RELEASE]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_321]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:1.8.0_321]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_321]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:1.8.0_321]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_321]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_321]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_321]
2022-04-22 01:16:50,836 [task-scheduler-6] ERROR org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter - Exception while connecting and subscribing
org.eclipse.paho.client.mqttv3.MqttException: Client is connected
at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:27) ~[mqtt-client-0.4.0.jar:?]
at org.eclipse.paho.client.mqttv3.MqttAsyncClient.connect(MqttAsyncClient.java:452) ~[mqtt-client-0.4.0.jar:?]
at org.eclipse.paho.client.mqttv3.MqttAsyncClient.connect(MqttAsyncClient.java:442) ~[mqtt-client-0.4.0.jar:?]
at org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter.connectAndSubscribe(MqttPahoMessageDrivenChannelAdapter.java:194) ~[spring-integration-mqtt-4.1.0.RELEASE.jar:?]
at org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter.access$300(MqttPahoMessageDrivenChannelAdapter.java:41) ~[spring-integration-mqtt-4.1.0.RELEASE.jar:?]
at org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter$1.run(MqttPahoMessageDrivenChannelAdapter.java:237) [spring-integration-mqtt-4.1.0.RELEASE.jar:?]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) [spring-context-5.2.0.RELEASE.jar:5.2.0.RELEASE]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_321]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:1.8.0_321]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_321]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:1.8.0_321]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_321]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_321]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_321]
2022-04-22 01:16:50,905 [task-scheduler-3] ERROR org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter - Error connecting or subscribing to [/sys/#]
org.eclipse.paho.client.mqttv3.MqttException: Client is connected
at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:27) ~[mqtt-client-0.4.0.jar:?]
at org.eclipse.paho.client.mqttv3.MqttAsyncClient.connect(MqttAsyncClient.java:452) ~[mqtt-client-0.4.0.jar:?]
at org.eclipse.paho.client.mqttv3.MqttAsyncClient.connect(MqttAsyncClient.java:442) ~[mqtt-client-0.4.0.jar:?]
at org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter.connectAndSubscribe(MqttPahoMessageDrivenChannelAdapter.java:194) [spring-integration-mqtt-4.1.0.RELEASE.jar:?]
at org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter.access$300(MqttPahoMessageDrivenChannelAdapter.java:41) [spring-integration-mqtt-4.1.0.RELEASE.jar:?]
at org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter$1.run(MqttPahoMessageDrivenChannelAdapter.java:237) [spring-integration-mqtt-4.1.0.RELEASE.jar:?]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) [spring-context-5.2.0.RELEASE.jar:5.2.0.RELEASE]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_321]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:1.8.0_321]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_321]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:1.8.0_321]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_321]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_321]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_321]
2022-04-22 01:16:50,934 [task-scheduler-3] ERROR org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter - Exception while connecting and subscribing
org.eclipse.paho.client.mqttv3.MqttException: Client is connected
at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:27) ~[mqtt-client-0.4.0.jar:?]
at org.eclipse.paho.client.mqttv3.MqttAsyncClient.connect(MqttAsyncClient.java:452) ~[mqtt-client-0.4.0.jar:?]
at org.eclipse.paho.client.mqttv3.MqttAsyncClient.connect(MqttAsyncClient.java:442) ~[mqtt-client-0.4.0.jar:?]
at org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter.connectAndSubscribe(MqttPahoMessageDrivenChannelAdapter.java:194) ~[spring-integration-mqtt-4.1.0.RELEASE.jar:?]
at org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter.access$300(MqttPahoMessageDrivenChannelAdapter.java:41) ~[spring-integration-mqtt-4.1.0.RELEASE.jar:?]
at org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter$1.run(MqttPahoMessageDrivenChannelAdapter.java:237) [spring-integration-mqtt-4.1.0.RELEASE.jar:?]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) [spring-context-5.2.0.RELEASE.jar:5.2.0.RELEASE]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_321]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:1.8.0_321]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_321]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:1.8.0_321]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_321]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_321]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_321]
2022-04-22 01:16:51,043 [task-scheduler-10] ERROR org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter - Error connecting or subscribing to [/sys/#]
org.eclipse.paho.client.mqttv3.MqttException: Client is connected
at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:27) ~[mqtt-client-0.4.0.jar:?]
at org.eclipse.paho.client.mqttv3.MqttAsyncClient.connect(MqttAsyncClient.java:452) ~[mqtt-client-0.4.0.jar:?]
at org.eclipse.paho.client.mqttv3.MqttAsyncClient.connect(MqttAsyncClient.java:442) ~[mqtt-client-0.4.0.jar:?]
at org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter.connectAndSubscribe(MqttPahoMessageDrivenChannelAdapter.java:194) [spring-integration-mqtt-4.1.0.RELEASE.jar:?]
at org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter.access$300(MqttPahoMessageDrivenChannelAdapter.java:41) [spring-integration-mqtt-4.1.0.RELEASE.jar:?]
at org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter$1.run(MqttPahoMessageDrivenChannelAdapter.java:237) [spring-integration-mqtt-4.1.0.RELEASE.jar:?]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) [spring-context-5.2.0.RELEASE.jar:5.2.0.RELEASE]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_321]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:1.8.0_321]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_321]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:1.8.0_321]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_321]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_321]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_321]
2022-04-22 01:16:51,052 [task-scheduler-10] ERROR org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter - Exception while connecting and subscribing
org.eclipse.paho.client.mqttv3.MqttException: Client is connected
at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:27) ~[mqtt-client-0.4.0.jar:?]
at org.eclipse.paho.client.mqttv3.MqttAsyncClient.connect(MqttAsyncClient.java:452) ~[mqtt-client-0.4.0.jar:?]
at org.eclipse.paho.client.mqttv3.MqttAsyncClient.connect(MqttAsyncClient.java:442) ~[mqtt-client-0.4.0.jar:?]
at org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter.connectAndSubscribe(MqttPahoMessageDrivenChannelAdapter.java:194) ~[spring-integration-mqtt-4.1.0.RELEASE.jar:?]
at org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter.access$300(MqttPahoMessageDrivenChannelAdapter.java:41) ~[spring-integration-mqtt-4.1.0.RELEASE.jar:?]
at org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter$1.run(MqttPahoMessageDrivenChannelAdapter.java:237) [spring-integration-mqtt-4.1.0.RELEASE.jar:?]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) [spring-context-5.2.0.RELEASE.jar:5.2.0.RELEASE]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_321]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:1.8.0_321]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_321]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:1.8.0_321]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_321]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_321]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_321]