2017-11-11 90 views
0

我正在使用Lagom框架與Java。我有一個在構造函數參數中使用可選的模型類。我只有一個基於此模型類的持久化實體,並且對此實體進行了實體測試(使用PersistentEntityTestDriver)。問題是所有實體測試失敗,此錯誤 -如何在Lagom中使Java可選Serializable?

java.lang.AssertionError:

Expected :[]

Actual :[[class java.util.Optional is not serializable, No configured serialization-bindings for class [com.sp.User]]

樣品用戶類 -

class User { 

    public final UUID id; 
    public final ZonedDateTime date; 

    @JsonCreator 
    public User(@JsonProperty("id") UUID userId, 
       @JsonProperty("address") Optional<ZonedDateTime> date) { 
     this.id = id; 
     this.date = createdOn.orElse(getUtcDateTime()); 
    } 

} 

我如何配置我的服務連載可選。

+0

序列化不是服務的意思 –

+0

我用Jsonable接口(com.lightbend.lagom.serialization.Jsonable)實現模型類來解決它。實現這個接口意味着給它比默認的java Serializable接口更高的優先級。 所以,akka將使用它自己的序列化程序進行選擇,而不是使用默認的java序列化。 Doc - (https://www.lagomframework.com/documentation/1.0.x/java/api/index.html?com/lightbend/lagom/serialization/Jsonable.html) – konghoho

回答

0

你在用什麼版本的Jackson?我認爲你至少需要2.8.5其中增加了一個可選類的序列化程序。