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());
}
}
どのように私は、オプションのシリアル化するために私のサービスを設定することができます。
serializeはサービス –
ではありません。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