I am trying to migrate Akka from 2.4.1 to 2.6.19 during this migration I am facing some serialization issues as follows.
akka.remote.MessageSerializer$SerializationException: Failed to serialize remote message [class akka.actor.ActorSelectionMessage] using serializer [class akka.remote.serialization.MessageContainerSerializer].
at akka.remote.MessageSerializer$.serialize(MessageSerializer.scala:66)
at akka.remote.EndpointWriter.$anonfun$serializeMessage$1(Endpoint.scala:1035)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
at akka.remote.EndpointWriter.serializeMessage(Endpoint.scala:1035)
at akka.remote.EndpointWriter.writeSend(Endpoint.scala:895)
at akka.remote.EndpointWriter$$anonfun$4.applyOrElse(Endpoint.scala:867)
at akka.actor.Actor.aroundReceive(Actor.scala:537)
at akka.actor.Actor.aroundReceive$(Actor.scala:535)
at akka.remote.EndpointActor.aroundReceive(Endpoint.scala:540)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:580)
at akka.actor.ActorCell.invoke(ActorCell.scala:548)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:270)
at akka.dispatch.Mailbox.run(Mailbox.scala:231)
at akka.dispatch.Mailbox.exec(Mailbox.scala:243)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Caused by: akka.serialization.DisabledJavaSerializer$JavaSerializationException: Attempted to serialize message using Java serialization while `akka.actor.allow-java-serialization` was disabled. Check WARNING logs for more details.
My current configuration is as follows.
akka {
actor {
provider = "akka.remote.RemoteActorRefProvider"
warn-about-java-serializer-usage = true
enable-additional-serialization-bindings = on
serialize-messages = on
....
serializers {
proto = "akka.remote.serialization.ProtobufSerializer"
}
serialization-bindings {
"java.io.Serializable" = none
"com.google.protobuf.Message" = proto
}
}
remote {
artery.enabled = false
classic {
enabled-transports = ["akka.remote.classic.netty.tcp"]
netty.tcp {
hostname = "127.0.0.1"
port = 2552
}
}
}
}