Либо msgBroker имеет значение null, либо один из параметров, передаваемых в msgBroker.routeMessageToService (), равен. Без трассировки стека, выводимой при обнаружении исключения, трудно сказать, в чем проблема - с его помощью он точно определит, какая переменная равна нулю, а не должна.
Из вашего кода, учитывая тот факт, что msg не может быть нулевым (или исключение произошло бы раньше), это то, что либо msgBroker имеет значение null, ноль, передаваемый в msgBroker, наносит ущерб, либо код внутри msgBroker.routeMessageToService () есть ошибка.
Более надежная версия вашего кода:
while (true) {
Message message = consumer.receive();
//Note extra variables being checked here
if (message != null && msg != null && msgBroker != null) {
if (message instanceof TextMessage) {
try{
TextMessage textMessage = (TextMessage) message;
System.out.println("Received message '"+ textMessage.getText() + "'");
msg.setTimestamp(System.currentTimeMillis());
msg.setBody(textMessage.getText());
msgBroker.routeMessageToService(msg, null);
} catch(Exception e){
e.printStackTrace();
}
} else {
break;
}
}
}