2016-12-01 238 views
0

我正在使用MQTT Paho MqttCallback我成功地能夠在我的主題上訂閱和發佈,沒有任何問題,但是,我的任務是將數據存儲在數據庫中,因此數據庫中存儲的數據是messageArrived(String topic, MqttMessage message),我將來可以使用它。如何在數據庫中存儲mqtt訂閱的數據

@Override 
public void messageArrived(String topic, MqttMessage message) throws Exception { 
    // code to store the message in database 
    LOGGER.info("messageArrived>> " + message); 
} 

messageArrived()不執行存儲到數據庫的代碼,它只是執行LOGGER。 在數據庫中存儲消息的代碼是正確的,然後它也跳過了代碼。 我需要應用什麼策略才能首先將消息存儲在數據庫中並打印日誌。

更新

我想類似的東西,以this

+0

你使用maven的原因是什麼? – Jay

+0

是的,我正在使用maven –

+0

好吧,當你在調試器中拉動它時會發生什麼? – Jay

回答

0

這將是因爲你的記錄器/數據庫代碼它拋出,這是獲得由泛美衛生組織框架吞噬異常。

在您的Logger調用中添加try/catch塊。

@Override 
public void messageArrived(String topic, MqttMessage message) throws Exception { 
    try { 
     // code to store the message in database 
     LOGGER.info("messageArrived>> " + message); 
    } catch (Exception ex) { 
     System.err.println(ex); 
    } 
} 

現在應該打印失敗到stderr

+0

我試過這個,但凹痕工作,我的數據庫代碼不執行記錄沒有插入..任何其他解決方案請@hardillb –

+0

它仍然會失敗,但它應該打印一條消息給stderr,說明它爲什麼失敗 – hardillb

相關問題