java kryonet - ChatMessage - класс не зарегистрирован
Я только начал использовать крионет.
пример чата отлично работает при запуске из папки примеров.
если я копирую клиент чата, сервер и сетевые файлы в другую исходную папку в eclipse, я получаю IllegalArgumentException: класс не зарегистрирован: com.esotericsoftware.kryonet.examples.chat.Network$RegisterName (см. ниже).
я добавил распечатки вокруг: "kryo.register(ChatMessage.class);", так что я знаю, что это вызывается.
клиент зависает при попытке подключения.
любые указатели будут оценены.
Спасибо
00:05 INFO: [kryonet] Connecting: localhost/127.0.0.1:22222
00:05 DEBUG: [kryonet] Port 59450/TCP connected to: localhost/127.0.0.1:22222
00:05 DEBUG: [kryo] Read: RegisterTCP
00:05 INFO: [kryonet] Connection 1 connected: localhost/127.0.0.1
Exception in thread "Client" java.lang.IllegalArgumentException: Class is not registered: com.esotericsoftware.kryonet.examples.chat.Network$RegisterName
Note: To register this class use: kryo.register(com.esotericsoftware.kryonet.examples.chat.Network$RegisterName.class);
at com.esotericsoftware.kryo.Kryo.getRegistration(Kryo.java:461)
at com.esotericsoftware.kryo.util.DefaultClassResolver.writeClass(DefaultClassResolver.java:79)
at com.esotericsoftware.kryo.Kryo.writeClass(Kryo.java:491)
at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:596)
at com.esotericsoftware.kryonet.KryoSerialization.write(KryoSerialization.java:66)
at com.esotericsoftware.kryonet.TcpConnection.send(TcpConnection.java:210)
at com.esotericsoftware.kryonet.Connection.sendTCP(Connection.java:87)
at com.tayek.kryo.ChatClient$1.connected(ChatClient.java:55)
at com.esotericsoftware.kryonet.Connection.notifyConnected(Connection.java:242)
at com.esotericsoftware.kryonet.Client.update(Client.java:284)
at com.esotericsoftware.kryonet.Client.run(Client.java:356)
at java.lang.Thread.run(Unknown Source)
1 ответ
Exception in thread "Client" java.lang.IllegalArgumentException: Class is not registered: com.esotericsoftware.kryonet.examples.chat.Network$RegisterName
Note: To register this class use: kryo.register(com.esotericsoftware.kryonet.examples.chat.Network$RegisterName.class);
Трассировка стека говорит, что Network$RegisterName
класс не зарегистрирован.
Зарегистрируйте этот класс, и ваш проект начнет работать как обычно.