首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kryonet抛出异常=>循环(StackOverflowError)

Kryonet抛出异常=>循环(StackOverflowError)
EN

Stack Overflow用户
提问于 2016-02-01 17:12:31
回答 1查看 447关注 0票数 1

我们使用Kryonet通过RMI调用服务器方法。如果服务返回一个正常值(如true/false),则它运行良好.

但是,当服务抛出异常时,我们会得到一个无休止的循环,从而在服务器上产生一个StackOverflowError。

代码语言:javascript
复制
Exception in thread "Server" java.lang.StackOverflowError
at com.esotericsoftware.kryo.Kryo.getRegistration(Kryo.java:472)
at com.esotericsoftware.kryo.util.DefaultClassResolver.writeClass(DefaultClassResolver.java:97)
at com.esotericsoftware.kryo.Kryo.writeClass(Kryo.java:517)
at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:76)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:518)
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:552)
at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:518)
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:552)
at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:518)

服务:

代码语言:javascript
复制
public class AuthServiceImpl extends BaseServiceImpl implements AuthService {

public boolean checkLogin(String username, String password) throws Exception {
    // ...
    throw new Exception("Test");
}

}

呼叫客户:

代码语言:javascript
复制
Boolean state = null;
try {
    state = service.checkLogin("Test", "password");
} catch (Exception e) {
    // Login Faild
    // ...
}
return state;

所有班级都是在克里奥注册的。

  • 服务
  • 例外情况
  • 类型

Kryonet不能处理RMI的异常吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-01 18:16:15

对于引用自身的原因,您可能有例外。

如果无法处理此原因,则应在初始化KryoSerialization时启用引用。

代码语言:javascript
复制
Kryo kryo = new Kryo();
kryo.setReferences(true);
KryoSerialization serialization = new KryoSerialization(kryo);

Server server = new Server(16384, 2048, serialization);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35136360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档