How to solve error: cannot find symbol message.reply(...); Vertx point-to-point

How to solve error: cannot find symbol message.reply(...); Vertx point-to-point

我有两个 java classes 使用 vert.x EventBus.

进行通信

我有一个 Productor.java class:

package TP1;

import io.vertx.core.AbstractVerticle;
import io.vertx.core.eventbus.EventBus;
import io.vertx.core.json.JsonObject;

public class Productor extends AbstractVerticle 
{
    public void start() throws Exception
    {
        System.out.println("> Launching Productor...");

        EventBus ebReady = vertx.eventBus();

        //Send ready message
        ebReady.send("canal-ready", "ready", messageReady -> {

            //If Consumer received the ready message
            if(messageReady.succeeded())
            {
                //Parse json response
                JsonObject jsonObject = new JsonObject(messageReady.result().body().toString());

                //Get answer value
                int answerValue = Calcul.factorial(jsonObject.getInteger("param"));

                String answer = Integer.toString(answerValue);

                messageReady.reply(answer);//ERROR HERE
            }
            else
                System.out.println("> No response!");
        });
    }
}

和一个Consumer.java class:

package TP1;

import io.vertx.core.AbstractVerticle;
import io.vertx.core.eventbus.EventBus;
import io.vertx.core.json.JsonObject;

public class Consumer extends AbstractVerticle 
{
    public void start() throws Exception
    {
        System.out.println("> Launching Consumer...");

        String jsonString = "{\"class\":\"Calcul\",\"method\":\"factoriel\",\"param\":5}";
        JsonObject jsonObj = new JsonObject(jsonString);

        EventBus ebReady = vertx.eventBus();

        //Wait for ready message
        ebReady.consumer("canal-ready", messageReady -> {

            //Parse the ready message
            String readyString = messageReady.body().toString();

            //Make sure it's the ready message
            if(readyString.equals("ready"))
            {
                //Send json back (messageReady.succeeded())
                messageReady.reply(jsonObj, messageReadyReply -> {
                    System.out.println(messageReadyReply);
                });
            }
        });
    }
}

我无法构建生产者 class 但对消费者没有问题。

Productor.java class 中的 messageReady.reply(answer); 部分有什么问题?

您错过了对 result() 的调用(参见 here) before getting the message and executing methods on it. However, you're using methods that have been deprecated in the 3.8 version (example)并且在 4.0 中也没有,所以我建议您改用其他签名。