Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Java > Allgemeine Java-Programmierung > Jakarta Commons-Net: FTP-Client kann nur eine Datei empfangen
Antwort
 
Themen-Optionen
Alt 12.09.2005, 21:36   Nach oben    #1
pago
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.083
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  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.09.2005, 16:17   Nach oben    #2
pago
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.083
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  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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

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

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are 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 +2. Es ist jetzt 21:32 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

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