2010-11-19 4 views
3

Grüße Leute.FTP-Site funktioniert, aber ich kann keine Verbindung zum Java-Programm herstellen. Ich bekomme java.net.UnknownHostException

Ich habe dieses seltsame Problem. In dem Projekt, an dem ich gerade arbeite, muss ich eine Datei auf eine FTP-Site hochladen. Ich habe viele Programme geschrieben, die das vorher gemacht haben und sie haben gut funktioniert. Aber diese spezielle Seite gibt mir Ärger. Wenn ich versuche, die Datei aus dem Programm zu laden, erhalte ich diese spezifisch sein:

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

aber wenn ich versuche, an die gleiche Stelle zu verbinden, von innen ein Browser (Chrome, IE) oder aus dem Windows Explorer kann ich die Seite finden und gut einloggen. Ich habe müde ein Bild gepostet, aber ich wurde daran gehindert, das zu tun, weil ich ein Neuling bin.

Also bin ich jetzt ratlos. Wenn ich keine Verbindung zu Windows herstellen konnte, kann ich davon ausgehen, dass es sich um ein Problem mit dem FTP-Server handelt. Das passiert mir nur aus dem Java-Programm. Und ich weiß auch, dass mein Code so funktioniert, wie ich es schon oft benutzt habe. Hier ist der Code, den ich verwende:


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; 
      } 
     } 
    } 

Ich benutze die edtFTPj Bibliothek. Meine Umgebung ist Eclipse Helios (32 Bit) auf Java 1.6 (32 Bit) von einem Windows 7 64 Bit-Rechner.

Alle Einsichten zur Lösung dieses Problems werden sehr geschätzt. Vielen Dank für Ihre Zeit.

+0

haben Sie Proxyeinstellungen mit Ihrem Browser konfiguriert? –

Antwort

8

Die Nachricht

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

ganz stark darauf hin, dass Sie eine Verbindung zu einem Host "ftp://site.com", die leider den Namen zu öffnen sind versucht, eine URL anstelle eines Hostnamens und wird daher nicht gefunden.

Versuchen Sie, Ihren Code so zu ändern, dass er sich mit "site.com" verbindet.

+0

[In der Tat] (http://commons.apache.org/net/api/org/apache/commons/net/ftp/FTPClient.html). – BalusC

+0

Danke Don. Nach einigem Hin und Her habe ich das gerade herausgefunden. Ich wollte diesen Thread aktualisieren. Aber danke für deine schnellen Antworten. –

+0

Hi Don ich ähnliche Frage gestellt haben können Sie bitte bitte helfen Sie mir? – IamStalker

1

Die UnknownHostException bedeutet, dass die Java-Netzwerkbibliothek den angegebenen Hostnamen nicht über eine DNS-Suche in eine IP-Adresse konvertieren kann.

Haben Sie eine Art Proxy-Server für Ihre Browser konfiguriert? Alles, was mir einfällt, ist, dass Sie eine alternative Netzwerkkonfiguration einrichten müssen, wenn einige Anwendungen (Browser) den Hostnamen auflösen können und andere (Java) dies nicht können.

Siehe How do I configure proxy settings for Java?, wenn Sie einen Proxy für Ihren Java-Prozess einrichten müssen.

+0

Ich hätte erwähnen sollen, dass ich keinen Proxy verwende. –

Verwandte Themen