File upload mit ftp

  • Themenstarter Themenstarter Java2k5
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
J

Java2k5

Gast
Hi @all,

ich habe folgende Problemstellung:

ich hab aus einer lokalen Datenbank eine XML File exportiert.
Diese XML File will ich nun per Internet Verbindung (wenn möglich ftp) auf einen anderen Server hochladen und in die xindice xml-database (http://xml.apache.org/xindice) schreiben.

Habt ihr da eine Idee wie ich das am besten anstellen kann?
Wie lade ich eine File (XML Datei) auf einen anderen Server?


Grüße Java2k5
 
Im Moment bin ich so weit aber ich bekomm immernoch eine Exception als Ausgabe:


java.net.UnknownHostException: ftp://servernname
!!!Die angegebenen Serverdaten sind ungültig
java.lang.NullPointerException
!!!Fehler beim schließen der Verbindung!!!

Kann des ein, das meine firewall einfach den ftp port blockt und ich deshalb nicht raus komme?



mein code looks like that:
(Servername, Username und Passwort abgeändert)


Code:
import ftp.*;
import java.io.*;
import java.net.*;

/************************************************************************************
 * This is an FTP program and an example of using FtpBean.
 * 
 * Program Description:
 * It connects to a ftp server.
 * Go to a directory.
 * Then list its content with help of the FtpListResult class.
 * Finally, it gets a binary file. 
 * In the downloading progress, it tells how many bytes are being downloaded.
 *
 * Note that this class implements the FtpObserver interface, which
 * make this class have the ability to monitor the downloading or 
 * uploading progress.
 * If you don't need to monitor it, then you don't need to implement this interface.
 ***********************************************************************************/



class FtpProg implements FtpObserver
{

	//Variablen Deklaration
    FtpBean ftp;
    long num_of_bytes = 0;




// Main
    public static void main(String[] args) throws Exception
    { 
       System.out.println("********************************************************************************");
       System.out.println("FTP Programm Version 1.0 beta");
       System.out.println();       
       System.out.println("********************************************************************************");
       System.out.println();
       System.out.println();
       System.out.println();
                             
     FtpProg myFtpProg = new FtpProg();      
     myFtpProg.connect();
     //ftp.listDirectory();
     //ftp.getFile();
     myFtpProg.close();
     	 	   
       System.out.println(); 	   
       System.out.println();	 	       
       System.out.println();	 	                   
       System.out.println();
       System.out.println("********************************************************************************");
       System.out.println("Programm Ende");
       System.out.println();      
       System.out.println("********************************************************************************");
        
        
        
    }//public static void main(String[] args)





    public FtpProg()
    {
        // Create a new FtpBean object.
        ftp = new FtpBean();
    }//public ftp()



    // Connect to a ftp server.
    public void connect()
    {
        try
        {
            ftp.ftpConnect("ftp://servername", "username", "passwort");
        }        
        catch(Exception e)
        {
            System.out.println(e);                    
       	try
    	{
     	 	PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out, "Cp850"));
     	 	out.println("!!!Die angegebenen Serverdaten sind ungültig!!!");
     	 	out.flush();
    	}
    	catch (UnsupportedEncodingException d)
    	{
      	System.err.println(d);
      	}      
      }        
   }//public void connect()
           
           

    // Close connection
    public void close()
    {
        try
        {
          	ftp.close();
        } 	catch(Exception e)
      		{
            System.out.println(e);                        
        try
    	{
     	 	PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out, "Cp850"));
     	 	out.println("!!!Fehler beim schließen der Verbindung!!!");
     	 	out.flush();
    	}
    	catch (UnsupportedEncodingException d)
    	{
      	System.err.println(d);
      	}      
     		}
    }//public void close()



    // Go to directory pub and list its content.
    public void listDirectory()
    {
        FtpListResult ftplrs = null;

        try
        {
            // Go to directory 'pub/redhat/redhat-6.2/i386/RedHat/RPMS'.
            ftp.setDirectory("pub/redhat/redhat-6.2/i386/RedHat/RPMS");
            // Get its directory content.
            ftplrs = ftp.getDirectoryContent();
        } catch(Exception e)
        {
            System.out.println(e);
        }

        // Print out the type and file name of each row.
        while(ftplrs.next())
        {
            int type = ftplrs.getType();
            if(type == FtpListResult.DIRECTORY)
                System.out.print("DIR\t");
            else if(type == FtpListResult.FILE)
                System.out.print("FILE\t");
            else if(type == FtpListResult.LINK)
                System.out.print("LINK\t");
            else if(type == FtpListResult.OTHERS)
                System.out.print("OTHER\t");
            System.out.println(ftplrs.getName());
        }
    }//public void listDirectory()



    // Get the file.
    public void getFile()
    {
        try
        {
            // Get the binary file 'export.xml' and save it to
            // the name 'local_file_name' in the hard disk.
            // Passing this class which implements the FtpObserver interface to 
            // monitor this downloading progress. Every time new bytes are read,
            // the byteRead(int) method of this class is invoked by the bean.
            ftp.getBinaryFile("export.xml", "local_file_name", this);
        } catch(Exception e)
        {
            System.out.println(e);
        }
    }//public void getFile()
    
    
    

    // Implemented for FtpObserver interface.
    // To monitor download progress.
    public void byteRead(int bytes)
    {
        num_of_bytes += bytes;
        System.out.println(num_of_bytes + " of bytes read already.");
    }

    // Needed to implements by FtpObserver interface.
    public void byteWrite(int bytes)
    {
    }
            
    
}//class ftp implements FtpObserver
 
ZUR INFO

Die methoden
//ftp.listDirectory();
//ftp.getFile();
sind auskommentiert, da sie noch von einem anderen prog stammen, mitdem ich verschiedene rpm packete von einem linux server abholte.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben