2014-12-15 4 views
0

원격 액터를 사용하고 있으며, 로컬 액터가 메시지를 원격 액터로 보낼 때 직렬화 된 메시지를 보내고 ObjectOutputStream을 사용하지만 abd 오류가 발생하면 오류 : java가 발생합니다. io.NotRerializableException 직렬화가 설정되어 있지 않습니다. 클래스 java.io.ObjectOutputStream의 바인딩 어떤 직렬화가 추천되고 있습니까?원격 akka 액터 오류가 직렬화 가능 메시지를 보내려면

답변

2

java.io.ObjectOutputStream은 직렬화 할 수 없으므로 기본적으로 원격 메시지로 보낼 수 없습니다. 다른 메시지를 보내거나 해당 클래스의 serializer를 작성하고 Akka를 적절하게 구성해야합니다. 그러나 ObjectOutputStream이 무엇인지를 감안할 때, 해당 유형의 객체가 전선을 통해 전송되는 것은 의미가 없습니다.

더욱이 java.io.ObjectOutputStream은 실제로 변경 가능하므로 어쨌든 Akka에서 메시지로 전송해서는 안되며,이 모든 것을 논리적으로 렌더링하지 않아야합니다. 그냥하지 마.

1

메시지를 보내려면 ObjectOutputStream을 직접 만들 필요가 없습니다. Akka 액터에 직렬화 할 수있는 도메인 메시지 객체 (예 : Person, AddItem 등)입니다. Akka는 전선으로 그것을 보냈습니다. 기본적으로 Java 직렬화를 사용합니다 (가장 효율적인 것은 아닙니다).

관련 문제