FTP-сайт работает, но я не могу подключиться из программы Java.Я получаю java.net.UnknownHostException - PullRequest
3 голосов
/ 19 ноября 2010

Привет, ребята.

У меня странная проблема.В проекте, над которым я сейчас работаю, мне нужно загрузить файл на FTP-сайт.Я написал много программ, которые делают это раньше, и они работали просто отлично.Но этот конкретный сайт доставляет мне неприятности.Когда я пытаюсь загрузить файл из программы, я получаю следующее:

java.net.UnknownHostException: ftp: //site.com

Однако, когда я пытаюсь подключиться к тому же сайту из браузера (Chrome, IE) или из проводника Windows, я могу найти сайт и войти в систему просто отлично.Мне надоело публиковать фотографии, но мне было запрещено это делать, так как я новичок.

Так что я в тупике.Если я не смог подключиться из windows, то могу предположить, что это проблема FTP-сервера.Это происходит со мной только из программы Java.И я также знаю, что мой код работает так, как я использовал во многих случаях раньше.Вот код, который я использую:


public void uploadFile(String fileName) throws Exception {
        FileTransferClient ftpClient = null;

        try {
            ftpClient = new FileTransferClient();
            ftpClient.setRemoteHost(gv.ftpHost);
            ftpClient.setRemotePort(21);
            ftpClient.setUserName(gv.ftpUserName);
            ftpClient.setPassword(gv.ftpPassword);
            ftpClient.getAdvancedFTPSettings().setConnectMode(FTPConnectMode.PASV);
            ftpClient.connect();

            ftpClient.uploadFile(gv.irp + fileName, fileName, WriteMode.OVERWRITE);
        }
        catch (Exception e) {
            throw new Exception("Error occured in uploadFile()\n" + e);
        }
        finally {
            if (ftpClient != null) {
                if (ftpClient.isConnected()) {
                    ftpClient.disconnect();
                }
                ftpClient = null;
            }
        }
    }

Я использую библиотеку edtFTPj.Моя среда - Eclipse Helios (32-разрядная версия) на Java 1.6 (32-разрядная версия), работающая на 64-разрядной машине Windows 7.

Любое понимание решения этой проблемы будет высоко оценено.Спасибо за ваше время.

Ответы [ 2 ]

9 голосов
/ 19 ноября 2010

Сообщение

java.net.UnknownHostException: ftp: //site.com

весьма убедительно указывает на то, что вы пытаетесь открыть соединение с хостом с именем " ftp: //site.com", который, к сожалению, является URL-адресом, а не именем хоста, и поэтому не найден. .

Попробуйте изменить код так, чтобы он соединялся с "site.com".

1 голос
/ 19 ноября 2010

UnknownHostException означает, что сетевая библиотека Java не может преобразовать имя хоста, предоставленное в IP-адрес, посредством поиска DNS.

У вас есть какой-нибудь прокси-сервер, настроенный для ваших браузеров?Все, что я могу придумать, это то, что у вас должна быть настроена альтернативная конфигурация сети, если некоторые приложения (браузеры) могут разрешить имя хоста, а другие (Java) не могут.

См. Как настроить параметры проксидля Java? , если вам нужно настроить прокси для вашего процесса Java.

...