Акка Рест Сервер Джексон ObjectReader и ObjectWriter Инициализация - PullRequest
1 голос
/ 04 июля 2019

Я использую объекты Jackson ObjectReader и ObjectWriter для сериализации и десериализации в Akka Rest Server. Я получаю byteString в запросе и десериализую его для объекта. Ниже приведен код для этого.

val a = objectReader.readValue[java.util.List[Base[Long]]](request.toArray)

Базовый класс является абстрактным классом, и я могу иметь несколько его реализаций

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME,
property = "impl")
@JsonSubTypes({
        @JsonSubTypes.Type(value = A.class, name = "A")
})
public abstract class Base<T> implements Serializable {
    private String impl;
    private ResponseStatus status;


    public String getImpl() {
        return impl;
    }

    public void setImpl(String impl) {
        this.impl = impl;
    }

    public void setStatus(ResponseStatus status) {
        this.status = status;
    }

    public ResponseStatus getStatus() {
        return status;
    }

    public static class ResponseStatus implements Serializable {
        private ReturnCode code;
        private String msg;

        public void setCode(ReturnCode code) {
            this.code = code;
        }

        public void setMsg(String msg) {
            this.msg = msg;
        }

        public ReturnCode getCode() {
            return code;
        }

        public String getMsg() {
            return msg;
        }
    }
}

Как я уже заметил, первый вызов readValue и writeValueAsBytes занимает много времени. Я попытался инициализировать это. Но все же это не улучшается в контексте выполнения Akka. Кто-нибудь знает решение этого? Пожалуйста помоги.

...