给你一个例子吧import java.io.*;
import java.rmi.*;
import java.rmi.server.*;
import sun.applet.*;
import java.rmi.registry.LocateRegistry;/**
 * Title:
 * Description:
 * Copyright:    Copyright (c) 2002
 * Company:
 * @author
 * @version 1.0
 */public class RmiHelloServer
{  public RmiHelloServer()
  {
  }
  public static void main(String[] args)
  {
    //创建并安装安全管理器
    if(System.getSecurityManager()==null)
    {
       System.setSecurityManager(new RMISecurityManager());
    }    try{
         //创建远程对象
         RmiHelloRemoteObj ttt=new RmiHelloRemoteObj();
         //启动注册表
         LocateRegistry.createRegistry(2222);
         //奖名称绑定到对象
         Naming.rebind("//Fangm:2222/helloObj",ttt);         System.out.println("RMI服务器正在运行");
      }
      catch(Exception e)
      {
         e.printStackTrace();
      }
  }
}
import java.rmi.server.*;
import java.rmi.*;/**
 * Title:
 * Description:
 * Copyright:    Copyright (c) 2002
 * Company:
 * @author
 * @version 1.0
 */public class RmiHelloRemoteObj extends UnicastRemoteObject implements RmiHelloRemoteIntfc
{  public RmiHelloRemoteObj() throws RemoteException
  {
    super();
  }  public String helloRemoteObj(String client) throws RemoteException
  {
     return "Hello World"+client;
  }
import java.rmi.*;/**
 * Title:
 * Description:
 * Copyright:    Copyright (c) 2002
 * Company:
 * @author
 * @version 1.0
 */public interface RmiHelloRemoteIntfc extends Remote
{
   String helloRemoteObj(String client) throws RemoteException;
}import java.rmi.*;
import java.rmi.server.*;/**
 * Title:
 * Description:
 * Copyright:    Copyright (c) 2002
 * Company:
 * @author
 * @version 1.0
 */public class RmiHelloClient
{  public RmiHelloClient()
  {
  }
  public static void main(String[] args)
  {
    //创建并安装安全管理器
    if(System.getSecurityManager()==null)
    {
       System.setSecurityManager(new RMISecurityManager());
    }    try{
          RmiHelloRemoteIntfc c1=(RmiHelloRemoteIntfc)Naming.lookup("rmi://Fangm:2222/helloObj");
          System.out.println(c1.helloRemoteObj("Everyone"));
    }
    catch(Exception e)
    {
       e.printStackTrace();
    }
    System.exit(0);  }
}

解决方案 »

  1.   

    谢谢啊.为什么会是类型不匹配呢?我的程序在同一个应用下面是没有问题的啊?
    Calculator c;//Calculator 为远程借口
          c= (Calculator) Naming.lookup("//localhost/CalculatorService");//**
    怎么会有类型不匹配呢?如果是类型不匹配的话,编译应该都不会过去的,是吧!?
      

  2.   

    有高人吗?这个问题已经困惑俺快一天了,问题就出在
    c= (Calculator) Naming.lookup("//localhost/CalculatorService");
    上,帮忙给看看呀!
    看了很多资料都没有涉及这个问题,真得跳楼了?!
      

  3.   

    你应该先看看
    jndi为://localhost/CalculatorService
    的对象是否正确
      

  4.   

    to:mr_wn(宝盖丁) 
    我根本就没有用JNDI啊.
      

  5.   

    RmiHelloRemoteIntfc c1=(RmiHelloRemoteIntfc)Naming.lookup("rmi://Fangm:2222/helloObj");
     c= (Calculator) Naming.lookup("//localhost/CalculatorService");//**
    对比一下啊。看看有什么不同呢?
      

  6.   

    问题已经解决了,费了九牛2虎之力.非常感谢etre(林荃).原因是我的server和client的包结构不一样.