我正在使用jackson ObjectReader和ObjectWriter对象在Akka Rest Server中进行序列化和反序列化。 我在请求中获取byteString并将其反序列化为对象。下面是它的scala代码。
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执行上下文中它仍然没有改善。有人知道解决方案吗?请帮忙。