Java rmi 找不到方法,获取java.rmi.UnmarshalException:无法识别的方法哈希:远程对象不支持的方法...

I am new to RMI technology.

When I am running the rmi client program, I am getting the exception : java.rmi.UnmarshalException: unrecognized method hash: method not supported by remote object.

I am using jdk1.5

The argument of the remote method is the Serialized object.

These are the server code...

This is the Remote Interface

package interfacepackage;

import java.rmi.Remote;

import java.rmi.RemoteException;

public interface ServerInterface extends Remote{

public void getOrder(Order order) throws RemoteException;

}

This is the server implementation class

public class ServerImplementation implements ServerInterface {

public ServerImplementation() throws RemoteException {

}

public void getOrderFromCash(Order order) throws RemoteException {

System.out.println("WORKED");

}

public static void main(String[] args)

try {

java.rmi.registry.LocateRegistry.createRegistry(1234);

ServerImplementation service = new ServerImplementation();

ServerInterface myRemoteObject = (ServerInterface) UnicastRemoteObject

.exportObject(service, 0);

java.rmi.registry.Registry registry = java.rmi.registry.LocateRegistry

.getRegistry("localhost", 1234);

registry.rebind("ServerImplementation", myRemoteObject);

} catch (Exception ex) {

ex.printStackTrace();

}

}

}

This is the class Order

public class Order implements Serializable{

private static final long serialVersionUID = 1L;

private int id;

private String name;

public Order(int id,String name){

this.id=id;

this.name=name;

}

}

I have the same Interface and Order class in Client also.

This is the client code

public class TestClientProgram {

public static void main(String[] args) {

try{

java.rmi.registry.Registry registry = java.rmi.registry.LocateRegistry.getRegistry("localhost",1234);

ServerInterface service=(ServerInterface) registry.lookup("ServerImplementation");

Order orderObject=new Order(1,"dish");

service.getOrderFromCash(orderObject);

}

catch(Exception e){

e.printStackTrace();

}

}

}

Could any one help me to how can I fix the problem ?

Thanks In Advance

Renjith M

解决方案

The exception indicates that the server is not able to find the method, which is invoked by the client (the error message is slightly misleading). One possible reason may be that the server and client are running with different classpaths and that the code has been modified enough for the RMI interfaces to be incompatible.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值