//посмотрел у других, разницы не могу найти
package com.javarush.task.task32.task3208;
import java.rmi.AlreadyBoundException;
import java.rmi.NotBoundException;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
/*
RMI-2
*/
public class Solution {
public static Registry registry;
// Pretend we're starting an RMI client as the CLIENT_THREAD thread
public static Thread CLIENT_THREAD = new Thread(new Runnable() {
@Override
public void run() {
try {
for (String bindingName : registry.list()) {
Animal service = (Animal) registry.lookup(bindingName);
service.printName();
service.speak();
}
} catch (RemoteException e) {
e.printStackTrace();
} catch (NotBoundException e) {
e.printStackTrace();
}
}
});
// Pretend we're starting an RMI server as the SERVER_THREAD thread
public static Thread SERVER_THREAD = new Thread(new Runnable() {
@Override
public void run() {
final String BINDING_dog = "server.dog";
final String BINDING_cat = "server.cat";
try {
registry = LocateRegistry.createRegistry(2099);
final Cat cat = new Cat("Vaska");
final Dog dog = new Dog("Polkan");
Remote remoteCat = UnicastRemoteObject.exportObject(cat, 0);
Remote remoteDog = UnicastRemoteObject.exportObject(dog, 0);
registry.bind(BINDING_cat, remoteCat);
registry.bind(BINDING_dog, remoteDog);
Thread.sleep(2000);
} catch (RemoteException e) {
e.printStackTrace(System.err);
} catch (AlreadyBoundException e) {
e.printStackTrace(System.err);
} catch (InterruptedException e) {
e.printStackTrace(System.err);
}
}
});
public static void main(String[] args) throws InterruptedException {
// Starting an RMI server thread
SERVER_THREAD.start();
Thread.sleep(1000);
// Start the client
CLIENT_THREAD.start();
}
}
Veryprosto
35 уровень
Задача прошла валидацию, но при запуске выдает нулпоинтер ексепшн.
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Burakov Vladimir
30 апреля 2020, 17:20
Блин, такая же фигня. Чтобы я не делал nullPointerException на 22 строке, но задача прошла!
Exception in thread "Thread-0" java.lang.NullPointerException
at com.javarush.task.task32.task3208.Solution$1.run(Solution.java:22)
at java.lang.Thread.run(Thread.java:748)
0
Стас ПасинковSoftware Developer в ZipyMaster
18 марта 2020, 21:25
в каком месте НПЕ?
стектрейс покажите
0
Veryprosto
19 марта 2020, 17:11
Сложно объяснить, но сегодня запустил этот же код БЕЗ ИЗМЕНЕНИЙ, чтобы стектрейс скопировать. И все заработало. выдал правильный ожидаемый результат.
Быть может зависит от оборудования!
¯\_(ツ)_/¯
+1
Kazantip
20 июля 2020, 10:45
Скорее всего перед этой задачей вы сделали и запустили задачу RMI-1.
Соответственно на 2099 порту, когда возникала ошибка, сидела она.
А после перезагрузки компа порт банально освободился.
+1