2017-11-11 7 views
0

LagomフレームワークをJavaと使用しています。私はコンストラクタの引数でオプションを使用するモデルクラスを持っています。私は、このモデルクラスに基づいて永続エンティティを1つしか持たず、このエンティティにエンティティテスト(PersistentEntityTestDriverを使用)を持っています。問題は、すべてのエンティティのテストがこのエラーで失敗している -LagomでJavaオプションのシリアライズ可能にするには?

java.lang.AssertionError:

Expected :[]

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

サンプル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

serializeはサービス –

+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

あなたはどのバージョンのジャクソンを使用していますか?私はあなたがオプションクラスのシリアライザを追加した少なくとも2.8.5が必要だと思います。

関連する問題