不是很明白调用RMI接口的,问题是这样的,服务端在服务器上创建完毕并生成了 stub 代理类,客户端要调用的时候是怎么下载的,是将 stub 类用 HTTP或FTP之类的方式下载到本机,之后客户端手动的将此类添加到项目里面吗,要是这样的话 如服务端发布出的接口 为  S 里面有增删改查的方法,那在客户端调用的时候也需要手动写一个与服务端发布出来接口一样的类吗?请求各位指教。或给出例子。

解决方案 »

  1.   

    我也曾经碰到过,不过我不是按着网上的例子走的!觉得网上的例子负责而且不宜用我自己做的如下:服务器接口package com.cap.rmi.remote;import java.rmi.Remote;
    import java.rmi.RemoteException;
    import java.util.Map;/**
     * 功能说明:用户接口
     * @author fengchangxue
     */
    public interface IUser extends Remote {
    public boolean save(String op, Map map) throws RemoteException;
    }package com.cap.rmi.client;import java.rmi.RemoteException;
    import java.rmi.server.UnicastRemoteObject;
    import java.util.Map;import com.cap.business.UserManager;
    import com.cap.rmi.remote.IUser;public class User extends UnicastRemoteObject implements IUser {
    public User() throws RemoteException { } public boolean save(String op, Map map) throws RemoteException { return UserManager.getInstance().save(op, map);
    }
    }发布接口:
    LocateRegistry.createRegistry(port);Naming.bind("rmi://" + ip + ":" + port + "/IUser", user);
    接口和实现类写好之后就可以发布接口了客户端:String url = "rmi://localhost" + ":" + port + "/IUser";
    Object obj = (Object) java.rmi.Naming.lookup(url);
    obj就是接口的对象,你可以转换成你的接口类型,也可以通过反射调用,但是客户端调用服务端的接口必须有相关接口类以及参数的自定义对象,可是客户端没有怎么办,那就得由服务器端提供第一:服务器端要把相关的接口打成jar给客户端
    第二:如果你的参数包含实体对象,那就要把相关的实体打成jar给客户端大致就是这样了,其中的奥秘你得自己写了然后测试,分别用两个工程做测试,不要再同一个工程里面
      

  2.   

    其实在jdk1.5及其之后就不需要用rmic生成存根和骨架了,内部会用动态代理来完成只要你将服务端的interface也放一份到客户端,客户端lookup找到的对象强制转换成该接口即可调用
      

  3.   

    我是一名IT民工,之前的话在企业里面做过两年的开发。基本点一些技术都会。
    最近在家里面一个事业单位上班。 放弃了我喜爱的java开发。
    所以现在想在网络上找一个能够 做开发的活。 稍微给点报酬就行了。
     还希望大家给我介绍一下。谢谢了  看上的老板,可以私信给我。