Лабораторная работа: Удаленный вызов методом RMI
Вам не обязательно запускать rmiregistry как внешний процесс. Если вы знаете, что только ваше приложение использует регистрацию, вы можете загрузить ее внутри вашей программы с помощью строки:
LocateRegistry.createRegistry(2005);
Как и раньше, 2005 – это номер порта, который мы использовали в этом примере. Это эквивалентно запуску rmiregistry 2005 из командной строки, но часто этот способ является более подходящим при разработке RMI кода, так как это снжает число необходимых действий при запуске и остановке регистрации После того, как вы выполните этот код, вы можете вызвать bind() , используя Naming , как и ранее.
5. Клиент
Исходный код клиента следующий:
import java.rmi. Naming; •
import java.rmi. RemoteException;
import java.net. MalformedURLException;
import java.rmi. NotBoundException;
public class CalculatorClient {
public static void main (String[] args) {try {
Calculator c = (Calculator)
Naming.lookup («rmi://remotehost
/CalculatorService»); System.out.println (c.sub (4, 3)); System.out.println (c.add (4, 5)); System.out.println (c.mul (3, 6)); System.out.println (c.div (9, 3));
}
catch (MalformedURLException murle) {
System.out.println();
System.out.println (
«MalformedURLException»);
System.out.println(murle);
}
catch (RemoteException re) {
System.out.println();
System.out.println (
«RemoteException»);
System.out.println(re);} catch (NotBoundException nbe) {
System.out.println();
System.out.println (
«NotBoundException»); System.out.println(nbe);