Portal > Foren > Java > Allgemeine Java-Programmierung > Jakarta Commons-Net: FTP-Client kann nur eine Datei empfangen
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 12.09.2005, 21:36 Nach oben    #1
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.129
Standard Jakarta Commons-Net: FTP-Client kann nur eine Datei empfangen

So. Nachdem ich da nun schon seit Wochen dran sitze, frage ich mal hier rum.

Ich verwende für meinen Editor die Jakarta Commons-Net API, um eine Verbindung zu einem FTP-Server herzustellen.
Das funktioniert genau solange, bis ich eine Datei heruntergeladen habe. Anschliessend läuft nichts mehr.

Code:
Received: 220 dd6918.kasserver.com FTP server ready

Send: USER sedit

Received: 331 Password required for sedit.

Send: PASS ********

Received: 230 User sedit logged in.

Send: SYST

Received: 215 UNIX Type: L8

Send: PASV

Received: 227 Entering Passive Mode (83,133,49,138,199,85).

Send: LIST

Received: 150 Opening ASCII mode data connection for file list

Received: 226 Transfer complete.

Send: PASV

Received: 227 Entering Passive Mode (83,133,49,138,199,95).

Send: LIST /dragon_search

Received: 150 Opening ASCII mode data connection for file list

Received: 226 Transfer complete.

Send: PASV

Received: 227 Entering Passive Mode (83,133,49,138,199,96).

Send: LIST

Received: 150 Opening ASCII mode data connection for file list

Received: 226 Transfer complete.

Send: PASV

Received: 227 Entering Passive Mode (83,133,49,138,199,99).

Send: LIST

Received: 150 Opening ASCII mode data connection for file list

Received: 226 Transfer complete.

Send: PASV

Received: 227 Entering Passive Mode (83,133,49,138,199,100).

Send: LIST

Received: 150 Opening ASCII mode data connection for file list

Received: 226 Transfer complete.

Send: PASV

Received: 227 Entering Passive Mode (83,133,49,138,199,104).

Send: LIST /forum

Received: 150 Opening ASCII mode data connection for file list

Received: 226 Transfer complete.

Send: PASV

Received: 227 Entering Passive Mode (83,133,49,138,199,105).

Send: LIST /forum

Received: 150 Opening ASCII mode data connection for file list

Received: 226 Transfer complete.

Send: PASV

Received: 227 Entering Passive Mode (83,133,49,138,199,110).

Send: LIST

Received: 150 Opening ASCII mode data connection for file list

Received: 226 Transfer complete.

Send: PASV

Received: 227 Entering Passive Mode (83,133,49,138,199,111).

Send: RETR /forum/admin.php

Received: 150 Opening ASCII mode data connection for /forum/admin.php (1238 bytes)

Send: PASV

Received: 226 Transfer complete.

Send: PASV

Received: 227 Entering Passive Mode (83,133,49,138,199,113).

java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:364)
	at java.net.Socket.connect(Socket.java:507)
	at java.net.Socket.connect(Socket.java:457)
	at java.net.Socket.<init>(Socket.java:365)
	at java.net.Socket.<init>(Socket.java:178)
	at org.apache.commons.net.DefaultSocketFactory.createSocket(DefaultSocketFactory.java:53)
	at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:498)
	at org.apache.commons.net.ftp.FTPClient.retrieveFileStream(FTPClient.java:1327)
	at org.simpleedit.vfs.ftp.FtpFile.getInputStream(FtpFile.java:49)
	at org.simpleedit.vfs.ftp.FtpFile.getContent(FtpFile.java:26)
	at org.simpleedit.editor.VFSCodeEditor$1.run(VFSCodeEditor.java:50)
	at foxtrot.AbstractWorkerThread$2.run(AbstractWorkerThread.java:49)
	at java.security.AccessController.doPrivileged(Native Method)
	at foxtrot.AbstractWorkerThread.runTask(AbstractWorkerThread.java:45)
	at foxtrot.workers.DefaultWorkerThread.run(DefaultWorkerThread.java:153)
	at java.lang.Thread.run(Thread.java:595)
[SunJDK14ConditionalEventPump] Exception occurred during event dispatching:
java.lang.NullPointerException
	at org.jedit.syntax.SyntaxDocument.insertString(SyntaxDocument.java:231)
	at org.jedit.syntax.JSyntaxArea.setText(JSyntaxArea.java:962)
	at org.simpleedit.editor.VFSCodeEditor.<init>(VFSCodeEditor.java:53)
	at org.simpleedit.editor.VFSCodeEditorProvider.createEditorImpl(VFSCodeEditorProvider.java:26)
	at org.simpleedit.editor.AbstractEditorProvider.createEditor(AbstractEditorProvider.java:25)
	at org.simpleedit.editor.AbstractEditorProvider.createEditor(AbstractEditorProvider.java:30)
	at org.simpleedit.editor.EditorPanel.openFile(EditorPanel.java:67)
	at org.simpleedit.editor.EditorPanel.handleEvent(EditorPanel.java:116)
	at org.simpleedit.event.ApplicationEventListenerList.fireApplicationEvent(ApplicationEventListenerList.java:53)
	at org.simpleedit.SimpleEdit.fireApplicationEvent(SimpleEdit.java:81)
	at org.simpleedit.vfsbrowser.VFSList.browse(VFSList.java:130)
	at org.simpleedit.vfsbrowser.VFSList.browseSelectedFile(VFSList.java:135)
	at org.simpleedit.vfsbrowser.VFSList$1.mouseClicked(VFSList.java:54)
	at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:212)
	at java.awt.Component.processMouseEvent(Component.java:5491)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)
	at java.awt.Component.processEvent(Component.java:5253)
	at java.awt.Container.processEvent(Container.java:1966)
	at java.awt.Component.dispatchEventImpl(Component.java:3955)
	at java.awt.Container.dispatchEventImpl(Container.java:2024)
	at java.awt.Component.dispatchEvent(Component.java:3803)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3901)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
	at java.awt.Container.dispatchEventImpl(Container.java:2010)
	at java.awt.Window.dispatchEventImpl(Window.java:1766)
	at java.awt.Component.dispatchEvent(Component.java:3803)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
[Info] PluginEngine shutdown.
Send: QUIT

Received: 227 Entering Passive Mode (83,133,49,138,199,114).
Das wäre mal ein Beispiel-Log. Was ich da gemacht habe? Ich bin in ein Verzeichnis gegangen, bin dann wieder nach oben und in ein anderes. Dort habe ich eine Datei geöffnet und nachdem sie angezeigt wurde habe ich eine andere geöffnet - das war's dann.

Der Code, der die Verbindung zum Server herstellt, sieht so aus:
Code:
client.connect(host);
client.login(user, password);
client.enterLocalPassiveMode();
client.setReaderThread(false);
Hier die Methoden, die die Datei downloaded:
Code:
	public InputStream getInputStream() throws IOException {
		InputStream in = null;
		for(int i = 0; i < 5; i++) {
			in = fileSystem.getClient().retrieveFileStream(getFullPath());
			if(in != null) {
				return in;
			}
			try {
				Thread.currentThread().sleep(100);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		throw new IOException("Could not establish connection");
	}

	public String getContent(String encoding) {
		try {
			Reader in = new InputStreamReader(getInputStream(), encoding);
			String result = IOUtils.toString(in);
			in.close();
			return result;
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}
Die Schleife war mein missglückter Versuch, auf die Situation zu reagieren, wenn kein Stream gefunden wurde.

Über Hilfe würde ich mich freuen.
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.09.2005, 16:17 Nach oben    #2
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.129
Standard

Problem ist (endlich) gelöst.

Es fehlte der Aufruf von client.completePendingCommand(); nach dem Ende der Arbeit mit den Streams.
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Eigene IP abrufen und in Datei per FTP schreiben Jan Gesuche 5 17.03.2007 13:38
Datei über FTP-Funktionen erstellen Jan PHP-Programmierung 1 08.03.2007 20:36
Mit Applet Datei per ftp uploaden Tago Desktop-Applikationen und Grafik 3 09.09.2005 18:17
ftp client WurstBrot Allgemeine Java-Programmierung 7 05.09.2005 07:47
FTP Client in Java? tuxsymptom Allgemeine Java-Programmierung 4 14.08.2004 22:06


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:19 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45