как использовать метод обещания в CompletionStage в игровой среде 2.6 - PullRequest
0 голосов
/ 09 февраля 2019

Я использовал Play Framework 2.4, затем по какой-то причине мне пришлось обновить его до версии 2.6, тогда мой код начал выдавать ошибки времени компиляции, вот ошибка, которую я получаю

/myproject/app/controllers/UserGeneralController.java:44: cannot find symbol
[error]   symbol:   class Promise
[error]   location: class controllers.UserGeneralController
[error]         Promise<JsonObject> promise = PromiseHandler.getPromise(actorRef, request, 60000);

из этого link они сказали

Измените весь код, который возвращает F.Promise, чтобы вместо него возвращать CompletionStage.

, поэтому я изменил код, вот старый код, который ломался

Promise<JsonObject> promise = PromiseHandler.getPromise(actorRef, request, 60000);

        JsonObject response = null;

        Result result = null;
        try {

            response = promise.get(60000);
            log.debug("saveUserAccountInfo: >> response object >> {}", response);
            result = PlayResultHandler.getResult(response.get("status").getAsInt(),
                    JsonHandler.parseJsonIntoString(response));

        } catch (Exception e) {

}

вот изменение, которое я внес в код в игре 2.6

import java.util.concurrent.CompletionStage;

CompletionStage<JsonObject> promise = PromiseHandler.getPromise(actorRef, request, 6000);

Result result = null;
        try {
            response = ((JsonObject) promise.get(60000));
            log.debug(">> response object >> {}", response);
            result = PlayResultHandler.getResult(response.get("status").getAsInt(), JsonHandler.parseJsonIntoString(response));

        } catch (Exception e) {
}

после этого я получаю сообщение об ошибке

response = promise.get(60000);

/myproject/app/controllers/UserGenralController.java:42: cannot find symbol
[error]   symbol:   method get(int)
[error]   location: variable promise of type java.util.concurrent.CompletionStage<com.google.gson.JsonObject>
[error]             response =  promise.get(60000);

как мне получить объект json, как я получал раньше, пожалуйста, помогите

...