JGroups on Receive ClassNotFoundException

时间:2013-12-07 16:05:04

标签: java jgroups channels

所以我试图在群集中发送消息,该消息将包含一个Userizable对象,该对象是一个Serializable类。

当我发送一个字符串或一个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());
}

奇怪的是我可以在接收中创建一个新的User实例并且没有问题。例如;

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

有人有任何想法吗?

1 个答案:

答案 0 :(得分:1)

看一下ClassNotFoundException:运行程序时,User类不在类路径上。