Мне нужно поставить в очередь свою полезную нагрузку json в rabbitmq и получить сообщение из очереди. Я могу отправить сообщение в очередь, но когда я пытаюсь получить сообщение из обмена тем, я получаю исключение нулевого указателя. следующая строка в реализации метода onMessage вызывает исключение нулевого указателя.
simpleMessage=(SimpleMessage) rabbitTemplate.receiveAndConvert(qu);
Может кто-нибудь объяснить мне, как это сделать, или направить меня по ссылке, которая имеет решение
@Component
public class RabbitListener implements me {
@Autowired
RabbitTemplate rabbitTemplae;
//@Override
public void onMessage(Message message) {
System.out.println("in listener");
SimpleMessage simpleMessage= new SimpleMessage();
// System.out.println("Received a new message = [" + new String(message.getBody().toString()) + "]");
System.out.println("READY TO RECEIVE");
String qu=message.getMessageProperties().getConsumerQueue();
System.out.println("que name "+qu);
//simpleMessage=(SimpleMessage) rabbitTemplae.receiveAndConvert("MyTestQueue");
//System.out.println("rabbitMQ RECEIVE MESSAGE "+ rabbitTemplae.receiveAndConvert("MyTestQueu", 100000));
simpleMessage=(SimpleMessage) rabbitTemplae.receiveAndConvert(qu);
//rabbitTemplae.receiveAndConvert
// System.out.println( simpleMessage.getDescription());
}
}
нужно преобразовать его обратно в следующий объект из очереди
public class SimpleMessage implements Serializable {
private String name;
private String description;
public SimpleMessage() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@Override
public String toString() {
return "SimpleMessage{" +
"name='" + name + '\'' +
", description='" + description + '\'' +
'}';
}
}