У меня есть два пакета клиент и сервер:
пакет клиента содержит интерфейс "I_object":
package client;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface I_object extends Remote {
public int Add(int a,int b) throws RemoteException;
}
и класс main_client:
package client;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
/**
*
* @author marwen
*/
public class main_client {
public static void main(String [] args) throws NotBoundException, MalformedURLException, RemoteException{
I_object obj_distant=(I_object) Naming.lookup("rmi://localhost:1000/exemple");
System.out.println(obj_distant.Add(5, 9));
}
}
Серверный пакет содержит класс (impl_object), который реализует интерфейс I_object:
package server;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
/**
*
* @author marwen
*/
public class impl_object extends UnicastRemoteObject implements I_object {
public impl_object() throws RemoteException
{}
public int Add(int a,int b) throws RemoteException{
return a+b;
}
}
и, наконец, главный_сервер:
package server;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
public class main_server {
public static void main(String [] args) throws NotBoundException, MalformedURLException, RemoteException{
impl_object obj=new impl_object();
java.rmi.registry.LocateRegistry.createRegistry(1000);
Naming.rebind("rmi://localhost:1000/exemple", obj);
System.out.println("server is running");
}
}
, если вы заметилив реализации "impl_object" я не поместил "import client.I_object;"Зачем???????хорошо, точно, если я поставлю "import client.I_object;"к клиентскому пакету, поэтому сервер будет «связан» с клиентом !!!вот в чем проблема, когда я разделяю клиента и сервер (ставлю сервер на удаленный компьютер и клиента дома) ??? .... Может кто-нибудь объяснить мне, я не прав?