将来自RabbitMQ的字符串消息存储到Java中的变量

时间:2021-07-01 14:51:04

标签: java string rabbitmq

我尝试从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 -> { });
}

错误:

<块引用>

缺少返回语句
意外的返回值

0 个答案:

没有答案