2016-12-01 4 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()messageArrived()은 데이터베이스에 저장하는 코드를 실행하지 않고 간단히 LOGGER를 실행합니다. 데이터베이스에 메시지를 저장하는 코드가 올바른 경우 코드를 건너 뜁니다. 어떤 전략을 적용해야합니까? 먼저 데이터베이스에 메시지를 저장하고 로그를 인쇄합니다.

갱신

나는 비슷한 시도하고이 로거/데이터베이스 코드는 PAHO 프레임 워크에 의해 삼켜지고 예외를 발생되기 때문에

+0

당신이 받는다는 사용하고 stderr에 실패 이유를 인쇄해야합니까? – Jay

+0

예 maven을 사용 중입니다. –

+0

그래, 디버거에서 이것을 가져 오면 어떻게 될까요? – Jay

답변

0

this합니다.

로거 호출에 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); 
    } 
} 

는 이제

+0

이 작업을 시도했지만 데이터베이스 코드가 레코드를 실행하지 않고있다. 다른 솔루션 @hardillb을 –

+0

으로 만드십시오. 여전히 실패하지만, 실패한 이유를 stderr에게 보여 주어야합니다. – hardillb

관련 문제