2
でそれを送信した後に、私のオブジェクトをキャストすることはできません。私は、サーバーでの応答を読んだとき、私は右のオブジェクトを取得しますが、私はパケットにキャストしようとしたとき、私はこの例外を得たネッティー
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());
}
}
を印刷されることはありません「失敗SEND」
これは私が私のサーバーでそれを読む方法です:
@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投稿を編集しました –
パケットの代わりに文字列を送ることは可能でしょうか? –