Когда я прочитал ответ на сервере, я получаю правильный объект, но когда я пытаюсь бросить его в пакет, я получил это исключение:Я не могу бросить свой объект после отправки его с Нетти
java.lang.ClassCastException: java.lang.String cannot be cast to server.Packet
at server.JCoincheServerHandler.channelRead(JCoincheServerHandler.java:21)
Это мой пакет класс:
public class Packet implements Serializable
{
public int code;
int intData;
String data;
String user;
}
Это, как я отправить его в моем клиенте: не Передающий успешно, «сбой передачи» не печатается
public void sendMessage(Object object)
{
ChannelFuture cf = _chan.write(object);
_chan.flush();
if (!cf.isSuccess()) {
System.out.println("Send failed: " + cf.cause());
}
}
Это, как я прочитал это в моем сервере:
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) {
Packet packet = (Packet) msg;
System.out.println(packet.data);
System.out.println("Message received");
}
Что я сделал не так?
EDIT:
p.addLast(
new ObjectEncoder(),
new ObjectDecoder(ClassResolvers.cacheDisabled(null)),
handler);
Как выглядят ваши трубопроводы? Нужно знать, какие обработчики добавляются и в каком порядке –
@ ChrisO'Toole Я отредактировал мое сообщение –
Возможно ли, что вы отправляете строку вместо пакета? –