0

したがって、クラスター全体にメッセージを送信しようとしています。メッセージには、Serializable クラスである User オブジェクトが含まれます。

String または int を送信すると、完全に機能し、メッセージは問題なく送信され、クラスター上のすべてのチャネルがそれを受信します。

自分のオブジェクト User を送信しようとすると、この例外が発生します。

Dec 7, 2013 3:55:19 PM org.jgroups.logging.JDKLogImpl error
SEVERE: JGRP000019: failed passing message to receiver: %s
java.lang.IllegalArgumentException: java.lang.ClassNotFoundException: User
    at org.jgroups.Message.getObject(Message.java:378)
    at AuctionImpl$ReceiverClass.receive(AuctionImpl.java:151)
    at org.jgroups.JChannel.up(JChannel.java:738)

これは私の受信コードです。

public void receive(Message msg) {
    User user = (User) msg.getObject();
    System.out.println("Username: " + user.getUsername());
}

奇妙なことに、受信内で User の新しいインスタンスを作成しても問題はありません。例えば;

public void receive(Message msg) {
    User user = new User("Test", "Test");
    User user = (User) msg.getObject();
    System.out.println("Username: " + user.getUsername());
}

誰でもアイデアはありますか?

4

1 に答える 1