源代码如下,望大虾帮助,实在不知道为什么测试就是出错!
×××××××××××××××××××××××××Bank.java***********************
import java.util.*;
import java.rmi.*;public class Bank extends java.rmi.server.UnicastRemoteObject implements BankInterface
{
    Hashtable clients;
    
    public Bank() throws RemoteException
    {
        super();
        clients = new Hashtable();
        clients.clear();        
    }
    
    public void add(String id, double money) throws RemoteException
    {
        ((Compte)clients.get(id)).add(money);
    }
    
    public void reduce(String id, double money) throws RemoteException
    {
        ((Compte)clients.get(id)).reduce(money);
    }
    
    public Position position(String id) throws RemoteException
    {
        return ((Compte)clients.get(id)).position();
    }
}***************************BankInterface******************
import java.rmi.*;public interface BankInterface extends Remote
{
public void add(String id, double money) throws RemoteException;//存钱

public void reduce(String id, double money) throws RemoteException;//取钱

public Position position(String id) throws RemoteException;//查询
}×××××××××××××××××××××××××BanqueService××××××××××××
import java.rmi.*;public class BankService
{
    public static void main(String args[])
    {
        try
        {
            Bank bank = new Bank();
            Naming.rebind("localhost",bank);
            System.out.println("Bank en marche !");
        }
        
        catch (Exception E) 
        {
            E.printStackTrace();
        }
    }
}*********************Client********************
import java.rmi.*;public class Client
{
    public void main(String id)
    {
        try
        {   
            BankInterface b = (BankInterface)Naming.lookup("localhost");
            b.add(id,100.00);
            b.reduce(id,20.00);
            Position p= b.position(id);
            System.out.println("Position au " + p.dateDerniereOperation + " : " + p.solde);
        }
        
        catch (Exception E)
        {
            E.printStackTrace();
        }
        
    }
    
}
*******************************Account帐户***********
import java.util.*;public class Account
{
private Position position;

public Account(double solde, Date date)
{
    position = new Position(solde,date);
} void add(double money)
{
    position.solde = position.solde + money;
    position.dateDerniereOperation = new Date();
}

void reduce(double money)
{
    position.solde = position.solde - money;
    position.dateDerniereOperation = new Date();
}

Position position()
{
    return this.position;
}
}
**********************************Position******************
import java.io.*;
import java.util.*;public class Position implements Serializable
{
public double solde;
public Date dateDerniereOperation;

public Position(double solde, Date dateDerniereOperation)
{
    this.solde = solde;
    this.dateDerniereOperation = dateDerniereOperation;
}
}********************************Service服务器×××××××××××××××××××
import java.rmi.*;public class Service
{
    public void main()
    {
        try
        {
            Banque banque = new Bank();
            Naming.rebind("localhost",bank);
            System.out.println("Bank en marche !");
        }
        
        catch (Exception E) 
        {
            E.printStackTrace();
        }
    }
}
*****************************Test测试代码******************
public class Test
{
public static void main(String args[])
{
    Client A = new Client();
    A.main("1");
    Client B = new Client();
    B.main("2");
    Client C = new Client();
    C.main("3");
}
}
程序编译全部成功,rmic Banque, rmiregistry也成功,但是运行Test.java就是不成功,希望大虾帮忙,谢了!!!

解决方案 »

  1.   

    BankInterface b = (BankInterface)Naming.lookup("localhost"); 
                b.add(id,100.00); 
                b.reduce(id,20.00); ????
      

  2.   

    啊,不好意思,compte是法语里面的account的意思,对不起,小弟在法国留学,没有转换过来,实在是不好意思
      

  3.   

    BankInterface b = (BankInterface) Naming.lookup("localhost"); 这句的问题
    我这儿一直过不去
      

  4.   

    把BankService里面的
    Bank bank = new Bank(); 
                Naming.rebind("localhost",bank); bank改为ba,估计名字出现冲突
      

  5.   

    啊,小弟没有更改过来,是account的意思