Skip to content

Commit 982cd89

Browse files
authored
I'll give to him who athirst fountain water'f life
And he said unto me, It is done. I am Alpha and Omega, the beginning and the end. I will give unto him that is athirst of the fountain of the water of life freely. (Revelation 21:6)
1 parent 79b50b1 commit 982cd89

1 file changed

Lines changed: 87 additions & 0 deletions

File tree

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
2+
//And he said unto me, It is done. I am Alpha and Omega, the beginning and the end. I will give unto him that is athirst of the fountain of the water of life freely. (Revelation 21:6)
3+
4+
package com.javarush.task.task32.task3207;
5+
6+
import java.rmi.AlreadyBoundException;
7+
import java.rmi.NotBoundException;
8+
import java.rmi.Remote;
9+
import java.rmi.RemoteException;
10+
import java.rmi.registry.LocateRegistry;
11+
import java.rmi.registry.Registry;
12+
import java.rmi.server.UnicastRemoteObject;
13+
14+
/*
15+
К серверу по RMI
16+
*/
17+
public class Solution {
18+
public static final String UNIC_BINDING_NAME = "double.string";
19+
public static Registry registry;
20+
21+
//pretend we start rmi client as CLIENT_THREAD thread
22+
public static Thread CLIENT_THREAD = new Thread(new Runnable() {
23+
@Override
24+
public void run() {
25+
//напишите тут ваш код
26+
try {
27+
DoubleString service = (DoubleString) registry.lookup(UNIC_BINDING_NAME);
28+
System.out.println(service.doubleString("Hello"));
29+
} catch (RemoteException e) {
30+
e.printStackTrace();
31+
} catch (NotBoundException e) {
32+
e.printStackTrace();
33+
}
34+
}
35+
});
36+
37+
public static void main(String[] args) {
38+
//pretend we start rmi server as main thread
39+
Remote stub = null;
40+
try {
41+
registry = LocateRegistry.createRegistry(2099);
42+
final DoubleStringImpl service = new DoubleStringImpl();
43+
44+
stub = UnicastRemoteObject.exportObject(service, 0);
45+
registry.bind(UNIC_BINDING_NAME, stub);
46+
} catch (RemoteException e) {
47+
e.printStackTrace();
48+
} catch (AlreadyBoundException e) {
49+
e.printStackTrace();
50+
}
51+
52+
//start client
53+
CLIENT_THREAD.start();
54+
}
55+
}
56+
57+
/*
58+
К серверу по RMI
59+
60+
Реализуй логику метода run в CLIENT_THREAD. В нем будет имитироваться клиентская часть, которая коннектится к серверу.
61+
62+
1) Из registry получи сервис с именем UNIC_BINDING_NAME.
63+
64+
2) Вызови метод у полученного сервиса, передай любой не пустой аргумент.
65+
66+
3) Выведи в консоль результат вызова метода.
67+
68+
4) Обработай специфические исключения.
69+
70+
Метод main не участвует в тестировании.
71+
72+
73+
74+
75+
76+
Требования:
77+
78+
1. В методе run() необходимо из registry получить сервис с именем UNIC_BINDING_NAME.
79+
80+
2. В методе run() необходимо вызвать метод doubleString (String) у полученного сервиса.
81+
82+
3. В методе run() необходимо вывести в консоль результат вызова метода doubleString (String).
83+
84+
4. В методе run() должен быть перехват исключения RemoteException.
85+
86+
5. В методе run() должен быть перехват исключения NotBoundException.
87+
*/

0 commit comments

Comments
 (0)