所以我试图通过集群发送一条消息,该消息将包含一个 User 对象,它是一个 Serializable 类。
当我发送一个 String 或一个 int 时,它工作得很好,消息发送没有问题,集群上的所有通道都接收它。
当我尝试发送我自己的对象用户时,它给了我这个异常;
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());
}
奇怪的是我可以在接收中创建一个新的用户实例并且没有问题。例如;
public void receive(Message msg) {
User user = new User("Test", "Test");
User user = (User) msg.getObject();
System.out.println("Username: " + user.getUsername());
}
有人有什么想法吗?