В программе есть 1 интерфейс и 2 класса:
import java.rmi.Remote;
import java.rmi.*;
public interface MyRemote extends Remote {
public String sayHello() throws RuntimeException;
}
import java.rmi.server.UnicastRemoteObject;
import java.rmi.*;
import java.rmi.server.*;
public class MyRemoteImpl extends UnicastRemoteObject implements MyRemote {
public String sayHello(){
return "Сервер говорит: Привет";
}
public MyRemoteImpl() throws RemoteException {}
public static void main(String[] args) {
try {
MyRemote service = new MyRemoteImpl();
Naming.rebind("Удалённый привет", service);
}catch (Exception ex){
ex.printStackTrace();
}
}
}
import java.rmi.*;
public class MyReoteClient {
public static void main(String[] args) {
new MyReoteClient().go();
}
public void go(){
try {
MyRemote service = (MyRemote) Naming.lookup("rtm://127.0.0.1/Remote Hello");
String s = service.sayHello();
System.out.println(s);
}catch (Exception ex){
ex.printStackTrace();
}
}
}
Пытаюсь запустить, выдаёт ошибку. Подскажите, пожалуйста, чего не работает При запуске MyRemoteImpl, выдаёт ошибку:
java.rmi.server.ExportException: remote object implements illegal remote interface; nested exception is:
java.lang.IllegalArgumentException: illegal remote method encountered: public abstract java.lang.String MyRemote.sayHello() throws java.lang.RuntimeException
at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:228)
at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:383)
at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:320)
at java.rmi.server.UnicastRemoteObject.<init>(UnicastRemoteObject.java:198)
at java.rmi.server.UnicastRemoteObject.<init>(UnicastRemoteObject.java:180)
at MyRemoteImpl.<init>(MyRemoteImpl.java:11)
at MyRemoteImpl.main(MyRemoteImpl.java:15)
Caused by: java.lang.IllegalArgumentException: illegal remote method encountered: public abstract java.lang.String MyRemote.sayHello() throws java.lang.RuntimeException
at sun.rmi.server.Util.checkMethod(Util.java:267)
at sun.rmi.server.Util.getRemoteInterfaces(Util.java:246)
at sun.rmi.server.Util.getRemoteInterfaces(Util.java:216)
at sun.rmi.server.Util.createProxy(Util.java:146)
at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:226)
... 6 more
При запуске MyReoteClient:
java.net.MalformedURLException: invalid URL String: rtm://127.0.0.1/Remote Hello
at java.rmi.Naming.parseURL(Naming.java:243)
at java.rmi.Naming.lookup(Naming.java:96)
at MyReoteClient.go(MyReoteClient.java:9)
at MyReoteClient.main(MyReoteClient.java:5)
Caused by: java.net.URISyntaxException: Illegal character in path at index 22: rtm://127.0.0.1/Remote Hello
at java.net.URI$Parser.fail(URI.java:2848)
at java.net.URI$Parser.checkChars(URI.java:3021)
at java.net.URI$Parser.parseHierarchical(URI.java:3105)
at java.net.URI$Parser.parse(URI.java:3053)
at java.net.URI.<init>(URI.java:588)
at java.rmi.Naming.intParseURL(Naming.java:273)
at java.rmi.Naming.parseURL(Naming.java:237)
... 3 more
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Дано - входящий List<Integer>По нему нужно пройтись через Stream, если сумма всех чисел чётная - удалить все чётные
Проблема вот в чёмУ меня есть класс
Пишу клиент-серверное приложение, от сервера клиенту сообщение приходит, а от клиента серверу не приходитПричём не выводится никакой ошибки,...
Внезапно возникла проблема при считывании меток, стандартный метод