Les Interfaces :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Client.java import java.rmi.Remote; import java.rmi.RemoteException; public interface Client extends Remote{ public BankManager getBanckManager()throws RemoteException; public String getName()throws RemoteException; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Account.java import java.rmi.Remote; import java.rmi.RemoteException; public interface Account extends Remote{ public BankManager getBanckManager()throws RemoteException; public Client getClient()throws RemoteException; public String getNumAcc()throws RemoteException; public long getBalance()throws RemoteException; public boolean deposit(long mnt)throws RemoteException; public boolean getCash(long mnt)throws RemoteException; }Les Classes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 BankManager.java import java.rmi.Remote; import java.rmi.RemoteException; public interface BankManager extends Remote{ public Account getAccount(String accountNumber)throws RemoteException; public Client getClient(String clientName)throws RemoteException; public boolean addAccount(String clientName,String accountNumber)throws RemoteException; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 ClientImpl.java import java.rmi.Remote; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; public class ClientImpl extends UnicastRemoteObject implements Client{ public String name; public BankManager bankMana; public ClientImpl(String name,BankManager bankMana)throws RemoteException { this.name=name; this.bankMana=bankMana; } public BankManager getBanckManager() { return bankMana; } public String getName() { return name; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 AccountImpl.java import java.rmi.Remote; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; public class AccountImpl extends UnicastRemoteObject implements Account{ public BankManager bankMana; public long balance; public Client clt; public String numAcc; public AccountImpl(long balance,BankManager bankMana,Client clt,String numAcc)throws RemoteException{ this.balance=balance; this.bankMana=bankMana; this.clt=clt; this.numAcc=numAcc; } public BankManager getBanckManager() { return bankMana;} public Client getClient(){ return clt;} public String getNumAcc(){ return numAcc;} public long getBalance(){ return balance;} public boolean deposit(long mnt){ balance=balance+mnt; return true;} public boolean getCash(long mnt) { if((balance-mnt)>0){ balance=balance-mnt;return true;} else{return false;}} }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 BanckManagerImpl.java import java.rmi.Remote; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; import java.util.*; public class BanckManagerImpl extends UnicastRemoteObject implements BankManager{ public String name; public BanckManagerImpl(String name)throws RemoteException{ this.name=name;} Vector <Client> Cl=new Vector<Client>(); Vector <Account> ac=new Vector<Account>(); public Account getAccount(String accountNumber) throws RemoteException{ for (Account account : ac) { if (accountNumber.equals(account.getNumAcc())){ return account;} } return null;} public Client getClient(String clientName)throws RemoteException{ for (Client client : Cl) { if (clientName.equals(client.getName())){ return client;} } return null;} public boolean addAccount(String clientName,String accountNumber)throws RemoteException{ if(getClient(clientName)==null&& getAccount(accountNumber)==null){ BankManager bn=new BanckManagerImpl(name); Client clt=new ClientImpl(clientName,bn); Account acc=new AccountImpl(0,bn,clt,accountNumber); Cl.add(clt); ac.add(acc); return true; } return false;} }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Server.java import java.rmi.*; import java.rmi.registry.Registry; import java.rmi.registry.LocateRegistry; public class Server { public static void main (String[] args) { try { BanckManagerImpl banck = new BanckManagerImpl("Biat"); Registry reg= LocateRegistry.createRegistry(2000); //Registry reg= LocateRegistry.getRegistry(2000); reg.rebind("X",banck); System.out.println("server ok"); } catch(Exception e){ System.out.println("server non"); } } }j'ai developpé ce code en utilisant RemoteException
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 ClientS.java import java.rmi.registry.Registry; import java.rmi.registry.LocateRegistry; import java.rmi.*; public class ClientS { public static void main (String[] args) { try{ Registry reg= LocateRegistry.getRegistry(2000); BankManager bMan=(BankManager)reg.lookup("X"); bMan.addAccount("Salima", "123Sa"); Client cl; cl=bMan.getClient("Salima"); System.out.println(cl.getName()); } catch(Exception e){ System.out.println("erreur");} } }
je veut une 2ème solution en utilisant les objets Serializable
pouvez vous m'aider???????????
Partager