我尝试从rabbitMQ 接收消息,但无法将其作为字符串变量返回。当我将方法从 void 更改为字符串时,它给了我错误。
public void receiveMessage() throws Exception{
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
final Connection connection = factory.newConnection();
final Channel channel = connection.createChannel();
channel.queueDeclare("students-queue", true, false, false, null);
System.out.println(" [*] Waiting for messages. To exit press CTRL+C");
channel.basicQos(1);
DeliverCallback deliverCallback = (consumerTag, delivery) -> {
String message = new String(delivery.getBody(), "UTF-8");
return message;
Adapter adapter = new Adapter();
System.out.println(" [x] Received '" + message + "'");
try {
doWork(message);
JSONParser parser = new JSONParser();
JSONObject json = (JSONObject) parser.parse(message);
ArrayList<Siswa> array = new ArrayList<>();
array = adapter.buatSiswadariJSON(json);
for (int i = 0; i <array.size();i++) {
siswaRepository.saveSiswa(array.get(i));
System.out.println(array.get(i));
}
} catch (ParseException e) {
e.printStackTrace();
} finally {
System.out.println(" [x] Done");
channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false);
}
};
channel.basicConsume("students-queue", false, deliverCallback, consumerTag -> { });
}
错误:
<块引用>缺少返回语句
意外的返回值