Java не может разрешить адрес DNS из AIX: UnknownHostException - PullRequest
1 голос
/ 09 июня 2009

У меня странная ошибка.

В AIX, если я могу получить доступ к своему серверу из командной строки (используя ping / telnet)

Но если я пытаюсь использовать Java, у меня появляется UnkownHostException

Это связано с тем, что Java не может как-то «использовать» DNS, но я не знаю почему. Если я использую IP-адрес, он работает нормально.

Это моя тестовая программа.

    import java.net.*;

    public class Test {
            public static void main( String [] args ) throws Exception  {
                    String host = args[0];
                    int port = Integer.parseInt( args[1] );
                    System.out.println("Connecting to: " + host + " at port: " + port );
                    Socket socket = new Socket( host, port );
                    System.out.println("Connected!");
                    socket.close();
                    System.out.println("Closed!");

            }
     }

Кто-нибудь знает о какой-либо конфигурации в AIX, которая запрещает программам (таким как java) доступ к информации DNS?

Я (ну, системный администратор) добавил свой адрес в / etc / hosts, но он тоже не работает.

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

Java-версия:

Java(TM) 2 Runtime Environment, Standard Edition (build pap32dev-20080315 (SR7))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 AIX ppc-32 j9vmap3223-20080315 (JIT enabled)

Ответы [ 5 ]

1 голос
/ 21 июня 2010

Установка системного свойства

sun.net.spi.nameservice.provider.1 = DNS, вс

исправил эту проблему для меня в Ubuntu

1 голос
/ 10 ноября 2009

Java не соответствует порядку поиска DNS, указанному в системе. Например, в моей системе Solaris в /etc/nsswitch.conf я определил:

хосты: файлы nis dns

Ява хочет сначала перейти на dns, чего я не понимаю. Кажется, что можно изменить порядок, установив sun.net.spi.nameservice.provider.n properties.

Один из найденных мной обходных путей - добавить '.' в конце имени хоста. Например, если в / etc / hosts у меня есть

192.168.1.1 mailhost

В моем Java-приложении я бы указал InetAddress.getAllByName("mailhost.").

1 голос
/ 22 октября 2009

У меня тоже есть эта проблема. У меня есть несколько java-программ, установленных на Ubuntu64, и ни одна из них не может разрешать доменные имена (есть также несколько JRE - некоторые из них являются продуктами IBM). Если я поместил имя домена в файл hosts с IP-адресом, то оно будет работать только для этих доменов. Любая другая не Java-программа прекрасно работает с разрешением домена. WEIRD! Если я найду ответ, я выложу его здесь. Если у вас есть ответ, помогите нам, пожалуйста!

0 голосов
/ 15 июня 2009

Вы должны проверить файлы / etc / services.

У меня была такая же ошибка, и это потому, что служба:

domain .......... 

был прокомментирован.

0 голосов
/ 09 июня 2009

Проверьте, нужно ли вам использовать прокси, и если это так, укажите его детали в командной строке

http://helpdesk.objects.com.au/java/how-to-tell-a-java-application-to-use-a-proxy-server

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...