两个dubbo互相调用,然后报了KryoException: Encountered unregistered class ID: 114错误
问题由于两个dubbo的SerializationOptimizer分别注册了bean,而dubbo又去使用map去存储bean class,key为数字顺序,value为bean的路径class,所以导致上午不能找到bean的错误,解决方法是在每个服务的SerializationOptimizer使用相同数量的集合
public class SerializationOptimizerImpl implements SerializationOptimizer{
@Override
public Collection<Class> getSerializableClasses() {
List<Class> classes = new LinkedList<Class>();
classes.add(a.class);
return classes;
}
变为
public class SerializationOptimizerImpl implements SerializationOptimizer{
@Override
public Collection<Class> getSerializableClasses() {
List<Class> classes = new LinkedList<Class>();
classes.add(a.class);
classes.add(b.class);
return classes;
}