我有一个关于春天的问题。
我使用Spring-Paho MqttPahoMessageDrivenChannelAdapter与MQTT broker建立连接。下面是一个java配置部分:
@Bean
@Description("mqtt inbound adapter: receives mqtt messages")
public MessageProducer mqttInboundAdapter() {
log.info("creating mqtt inbound adapter");
MqttPahoMessageDrivenChannelAdapter adapter =
new MqttPahoMessageDrivenChannelAdapter(
env.getProperty("mqtt.hostname")+":" +env.getProperty("mqtt.port"),
"myClient",
"#");
adapter.setCompletionTimeout(5000);
adapter.setConverter(new DefaultPahoMessageConverter());
adapter.setQos(1);
adapter.setOutputChannel(mqttInputChannel());
adapter.setErrorChannel(mqttErrorChannel());
return adapter;
}当代理关闭且连接未建立时,将抛出ConnectException。这很棒,但我不仅想在日志中看到它的踪迹,还想收到一封警告电子邮件。
我希望它可以在mqttErrorChannel的帮助下实现,但ConnectException is not the case的错误通道的使用。是否有办法将ConnectException捕获到另一个通道或以另一种方式?
提前谢谢你。
发布于 2016-03-18 01:03:34
从Spring Integration 4.2.2开始,当我们失去连接或无法在订阅上连接时,就会发出MqttConnectionFailedEvent。
例如,您可以使用ApplicationEventListeningMessageProducer捕获该ApplicationEvent并将其发送到适当的通道。
请参阅《参考手册:http://docs.spring.io/spring-integration/reference/html/mqtt.html》中的详细信息
https://stackoverflow.com/questions/36066471
复制相似问题