Как обращаться с java.rmi.UnknownHostException - PullRequest
0 голосов
/ 31 декабря 2011

Я работаю с Eclipse, и приведенный ниже код - это код, который я использую для инициализации RMI.

public void init(String serviceName) throws RemoteException {
    try {
        String host = InetAddress.getLocalHost().getHostName();
        String url = "rmi://"+ host + serviceName;
        Naming.rebind(url,this);
    } catch (UnknownHostException e) { 
        e.printStackTrace();
    } catch (MalformedURLException e) { 
        e.printStackTrace();
    }
}

Я получаю UnknownHostException.

Поскольку я новичок в этом вопросе, вопрос может быть простым, но я не смог справиться с этим.

Заранее спасибо.

1 Ответ

1 голос
/ 31 декабря 2011

UnknownHostException означает, что он не может найти этот хост на уровне сети. Там нет обработки этого типа исключения, потому что это означает, что что-то сломано. Я бы распечатал URL, отправленный в RMI. Это должно выглядеть примерно так:

//localhost/ServiceImTryingToAccess

Если вы не указали лидирующую "/" на вашем сервисе, это может быть:

//localhostServiceImTryingToAccess

И это, безусловно, создаст исключение UnknownHostException. Вам действительно не нужно использовать InetAddress.getLocalHost (), как вы могли бы просто сделать:

String url = "//localhost" + serviceName;

Также обратите внимание, что я удалил часть URL схемы rmi: //. Это в документах, которые не нужны.

http://docs.oracle.com/javase/1.4.2/docs/api/java/rmi/Naming.html

...